@KrisTant Danke für die schnelle Antwort. Eine Frage habe ich zum Script: Muss die poll_items_aus_der_settings_ini.txt" in der Yaml-Syntax erstellt werden, also mit den Klammern? Hier ist als Beispiel meine: ''' Copyright 2024 philippoo66 Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.gnu.org/licenses/gpl-3.0.html Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ''' # Serial Ports +++++++++++++++++++ port_optolink = '/dev/ttyUSB0' # Serial port for Optolink device (mandatory, default: '/dev/ttyUSB0') port_vitoconnect = '/dev/ttyAMA0' # Serial port for Vitoconnect (optional, default: '/dev/ttyAMA0', set None if no Vitoconnect) Pls check https://github.com/philippoo66/optolink-splitter/wiki/520-termios.error:-(22,-'Invalid-argument') vs2timeout = 120 # Timeout (seconds) for VS2 protocol detection (default: 120) # MQTT Connection ++++++++++++++++ mqtt = "192.168.178.10:1883" # MQTT broker address (default: "192.168.0.123:1883", set None to disable MQTT) mqtt_user = "mqtt_user:mqtt_user" # MQTT user credentials: "<user>:<pwd>" (default: None for anonymous access) # MQTT Topics ++++++++++++++++++++ # Best practices recommendation: Always use lowercase for consistency and compatibility. mqtt_fstr = "{dpname}" # Format string for MQTT messages (default: "{dpname}", alternative e.g.: "{dpaddr:04X}_{dpname}") mqtt_topic = "vitocal" # MQTT topic for publishing data (default: "Vito") mqtt_listen = "vitocal/cmnd" # MQTT topic for incoming commands (default: "Vito/cmnd", set None to disable) mqtt_respond = "vitocal/resp" # MQTT topic for responses (default: "Vito/resp", set None to disable) mqtt_retain = False # Publish retained messages. Last message per topic is stored on broker and sent to new/reconnecting subscribers. (default: False) # TCP/IP ++++++++++++++++++++++++++ tcpip_port = 65234 # TCP/IP port for communication (default: 65234, used by Viessdata; set None to disable TCP/IP) tcpip_port = None # Optolink Communication Timing + fullraw_eot_time = 0.05 # Timeout (seconds) to determine end of telegram (default: 0.05) fullraw_timeout = 2 # Overall timeout (seconds) for receiving data (default: 2) olbreath = 0.1 # Pause (seconds) after a request-response cycle (default: 0.1) # Optolink Logging ++++++++++++++ log_vitoconnect = False # Enable logging of Vitoconnect Optolink rx+tx telegram communication (default: False) show_opto_rx = True # Display received Optolink data (default: True, no output when run as service) # Data Formatting +++++++++++++++ max_decimals = 4 # Max decimal places for float values (default: 4) data_hex_format = '02x' # Hexadecimal formatting (set '02X' for uppercase formatting, default: '02x') resp_addr_format = 'x' # Format of DP addresses in MQTT/TCPIP request responses ('d' for decimal, e.g. '04X' for 4-digit hex, default: 'x') # Viessdata Utilities +++++++++++ write_viessdata_csv = False # Enable writing Viessdata to CSV (default: False) viessdata_csv_path = "" # File path for Viessdata CSV output (default: "") buffer_to_write = 60 # Buffer size before writing to CSV (default: 60) dec_separator = "," # Decimal separator for CSV output (default: ",") # 1-Wire Sensors +++++++++++++++ # A typical sensor for temperature could be DS18B20; please mind that GPIO must be enabled for 1-Wire sensors (see Optolink-Splitter Wiki) # Dictionary for 1-Wire sensor configuration (default: empty dictionary) w1sensors = { # Addr: ('<w1_folder/sn>', '<slave_type>'), # entry format # 0xFFF4: ('28-3ce1d4438fd4', 'ds18b20'), # Example sensor (highest known Optolink Address is 0xFF17) # 0xFFFd: ('28-3ce1d443a4ed', 'ds18b20'), # Another example sensor } # Datapoint Polling List+++++++++ poll_interval = 30 # Polling interval (seconds), 0 for continuous, -1 to disable (default: 30) poll_items = [ # Datapoints defined here will be polled; ignored if poll_list.py is found in the working directory # ([PollCycle,] Name, DpAddr, Length [, Scale/Type [, Signed]), # PollCycle: Optional entry to allow the item to be polled only every x-th cycle # Name: Datapoint name, published to MQTT as {dpname}; Best practices recommendation: Always use lowercase Names for consistency and compatibility. # DpAddr: Address used to read the datapoint value (hex with '0x' or decimal) # Length: Number of bytes to read # Scale/Type: Optional; if omitted, value returns as a hex byte string without '0x'. See Wiki for details # Signed: Numerical data will interpreted as signed (True) or unsigned (False, default is False if not explicitly set) # meine Viessdata Tabelle # Tabelle für Vitocal 333-G ("error", 0x0491, 1, 1, False), ("Frostschutz_HK1", 0x1410, 1, 1, False), ("outside_temperature", 0x0101, 2, 0.1, True), ("hk1_mode", 0xB000, 1, 1, False), # betriebsart bit 4,5,6,7 comfort bit 1 spar bit 0 ("hk1_requested_temperature", 0xA406, 2, 0.01, False), ("hk1_normal_temperature", 0x2000, 2, 0.1, False), ("hk1_reduced_temperature", 0x2001, 2, 0.1, False), ("hk1_party_temperature", 0x2022, 2, 0.1, False), ("hk1_temperature", 0x0116, 2, 0.1, False), ("hk1_niveau", 0x2006, 2, 0.1, True), ("hk1_neigung", 0x2007, 2, 0.1, False), ("hk1_hysterese", 0x7003, 2, 0.1, False), ("compressor_ein", 0x0480, 1, 1, False), ("hk1_pump", 0x048D, 1, 1, False), ("hk1_zirkulation", 0x0490, 1, 1, False), ("hk1_supply_temperature", 0x010A, 2, 0.1, False), # ("buffer_temperature", 0x010B, 2, 0.1, False), ("nc_cooling", 0x0492, 1, 1, False), ("nc_supply_temperature", 0x0119, 2, 0.1, False), ("nc_supply_target_temperature", 0x1804, 2, 0.1, False), ("nc_cooling_niveau", 0x7110, 2, 0.1, True), ("nc_cooling_neigung", 0x7111, 2, 0.1, False), ("compressor", 0xB423, 2, 1, False), ("primary_pump", 0xB420, 2, 1, False), ("secondary_pump", 0xB421, 2, 1, False), # ("primary_supply_temperature", 0x0103, 2, 0.1, True), ("primary_return_temperature", 0x0104, 2, 0.1, True), # ---- TEST --- ("secondary_supply_temperature", 0x0105, 2, 0.1, True), ("secondary_return_temperature", 0x0106, 2, 0.1, True), # ----- TEST ENDE ----- ("thermal_energy", 0x1640, 4, 0.1, False), ("thermal_energy_ww", 0x1650, 4, 0.1, False), ("electrical_energy", 0x1660, 4, 0.1, False), ("electrical_energy_ww", 0x1670, 4, 0.1, False), ("thermal_power", 0x16A0, 4, 1, False), ("electrical_power", 0x16A4, 4, 1, False), ("cop_jaz", 0x1680, 1, 0.1, False), ("cop_jaz_heiz", 0x1681, 1, 0.1, False), ("cop_jaz_ww", 0x1682, 1, 0.1, False), ("cop_jaz_kuehlen", 0x1683, 1, 0.1, False), ("cop_heiz", 0x1690, 1, 0.1, False), ("warmwasser_hysterese",0x6007, 2,0.1,False), ("warmwasser",0x010D,2,0.1,False), ("warmwasser_soll",0x6000,2,0.1,False), ("warmwasser_soll2",0x600C,2,0.1,False), ("ventil_ww",0x0494,1,1,False), # Vitovent ("MinZuluftBypass",0x7D0F,2,0.1,False), ("AbluftTempSoll",0x7D08,3,0.1,False), ("AussenLuftTemp",0x0A00,3,0.1,True), ("ZuluftTemp",0x0A01,3,0.1,True), ("AbluftTemp",0x0A02,3,0.1,True), ("FortluftTemp",0x0A03,3,0.1,True), ("VolstromRed",0x7D0A,2,1,False), ("VolstromNormal",0x7D0B,2,1,False), ("VolstromIntensiv",0x7D0C,2,1,False), # Statistik ("LZ_Pumpe_Zirk",0x0590,4,2.7777778e-4,False), ("LZ_Pumpe_HK1",0x058D,4,2.7777778e-4,False), ("LZ_Pumpe_Sek",0x0584,4,2.7777778e-4,False), ("LZ_WP",0x0580,4,2.7777778e-4,False), ("LZ_E-Heizung_Stufe_1",0x0588,4, 2.7777778e-4,False), ("LZ_E-Heizung_Stufe_2",0x0589,4, 2.7777778e-4,False), ("Anz_Schalt_WP",0x0500,4,1,False), ("Anz_Schalt_PrimaerPumpe",0x0502,4,1,False), ("Anz_Schalt_SekundaerPumpe",0x0504,4,1,False), ("Anz_Schalt_Heizstab_1",0x0508,4,1,False), # ("Anz_Schalt_Heizstab_2",0x0508,4,1,False), # NEU ("Vorlauftemperatur_Sekundaerkreis", 0xB402, 3, 'b:0:1', 0.1, True), ("Vorlauftemperatur_Primaerkreis", 0xB400, 3, 'b:0:1', 0.1, True), ("Rücklauftemperatur_Sekundaerkreis", 0xB403, 3, 'b:0:1', 0.1, True), ("Rücklauftemperatur_Primaerkreis", 0xB401, 3, 'b:0:1', 0.1, True), ("Heissgastemperatur", 0xB40A, 3, 0.1, 'b:0:1', True), ("Verfluessigungsdruck", 0xB411, 3, 0.1, 'b:0:1', True), ("Sauggastemperatur", 0xB409, 3, 0.1, 'b:0:1', True), ("Sauggasdruck", 0xB410, 3, 0.1, 'b:0:1', True), ("Verdampfungstemperatur_t0", 0xB407, 3, 'b:0:1',0.1, True), ("Verfluessigungstemperatur_tc", 0xB408, 3, 0.1, 'b:0:1', True), ("Fluessiggastemperatur", 0xB404, 3, 0.1, 'b:0:1', True), ("Sauggasüberhitzung", 0xB40B, 3, 0.1, 'b:0:1', True), ("Expansionsventils", 0xB424, 2, 1, False), # ******** Elektro-Heizung ***************** # E-Heizung # Eingabe in 0.1 Grad, z.B. 50 für 5 Grad ("E-Heizung_Hysterese",0x6008, 2,0.1,False), ("E-Heizung_Stufe_1",0x0488, 1,1,False), ("E-Heizung_Stufe_2",0x0489, 1,1,False), # Freigabe Kompressor 0=aus 1=WW 2=Heiz 3=WW+Heiz 15=default ("setKompressor",0x5012, 1,1,False), # Heizstab # Durchlauferhitzer für Warmwasser aktivieren ("setHeater_WW",0x6015, 1,1,False), # Durchlauferhitzer ein- und ausschalten # (1=ein, 0=aus) ("setHeater_on",0x7900, 1,1,False), # Durchlauferhitzer für Warmwasser aktivieren # 0 == aus oder 1 == ein ("setHeater1_WW",0x7901, 1,1,False), # Durchlauferhitzer für Heizung aktivieren # 0 == aus oder 1 == ein ("setHeater_Heizung",0x7902, 1,1,False), # Leistung für Durchlauferhitzer setzen # (1=3, 2=6 oder 3=9kW) ("setHeater_Power",0x7907, 1,1,False), # Durchlauferhitzer Bivalenztemperatur # (Temp * 10 z.B. 500) ("Heater_Bivalenz",0x790B, 2,0.1,False) ]
... Mehr anzeigen