sek Laufzeit_Aktuell_s Temperatur_Aktuell TempOK Betriebsvorwahl Einschaltschwelle_Verbraucher_in_Watt Hilfsvariable_Einschaltverzoegerung_bereits_aktiv Verbraucher_Schalten Ausschaltschwelle_Verbraucher_in_Watt Temperatur_vor_Start_Heizstab Wolkenerkennung_Eingeschalten Freigabe_von_Wechselrichter PV_Lastleistung_Einspeiseleistung Temperatur_Ende_Heizstab Betriebsstunden_Gesamt_Sek Betriebsstunden_Gesamt_Schnitt_Sekunden Wolken_erkannt timeout_Einschaltverzögerung timeout_Erzeugung_zu_niedrig timeout_Wolkenverzoegerung_einschalten Start pro tag und Hilfsvariablen Rücksetzen: {"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}} Start pro tag Rücksetzen: 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_pro_Tag FALSE 0 Hilfsvariablen Rücksetzen: Hilfsvariable_Einschaltverzoegerung_bereits_aktiv FALSE Laufzeiten, Starts erfassen / Telegram-Nachrichten: https://forum.iobroker.net/topic/23336/betriebsstundenz%C3%A4hler-laufzeit-start/5 openknx.0.Keller_Heizung___Tropfwasserpumpe___Schaltaktoren.Keller_Schaltaktoren.KG_AMI_Schaltaktor_mit_Strommessung_Kanal_J_(Heizstab)_Schalten_Status ne 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Trigger_State FALSE state.val val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Trigger_State 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_Gesamt FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_Gesamt 1 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_pro_Tag FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_pro_Tag 1 Nachricht senden: state.val FALSE HTML FALSE FALSE text <b>Heizung</b> \n Heizstab wurde eingeschaltet !!! \n Freigabe von Wechselrichter: Freigabe_von_Wechselrichter \n PV-Lastleistung: PV_Lastleistung_Einspeiseleistung \n Temperatur: val km200.0.dhwCircuits.dhw1.actualTemp Quorle FALSE HTML FALSE FALSE text <b>Heizung</b> \n Heizstab wurde abgeschaltet !!! \n Freigabe von Wechselrichter: Freigabe_von_Wechselrichter \n PV-Lastleistung: PV_Lastleistung_Einspeiseleistung \n Temperatur: val km200.0.dhwCircuits.dhw1.actualTemp \n Anzahl Tagesstarts: val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_pro_Tag Quorle Logik Laufzeiten ne 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Trigger_State state.val log Timer gestartet Laufzeit_Aktuell_s 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Letzte_Laufzeit_s FALSE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Letzte_Laufzeit_m FALSE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Letzte_Laufzeit_h FALSE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_h 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_h FALSE 0 log Timer gestoppt RESET Alle Zähler Laufzeiten any 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Reset state.val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_h FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_Gesamt FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_pro_Tag FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_h FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Letzte_Laufzeit_h FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Letzte_Laufzeit_m FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Letzte_Laufzeit_s FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_h FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_m FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_s FALSE 0 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Reset FALSE FALSE Func_Timer Beschreibe diese Funktion … Laufzeit_Aktuell_s 1 sec Aktueller Zähler 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s 1 GTE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s 59 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m 1 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_s FALSE 0 GTE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m 59 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_h FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_h 1 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Aktuell_m FALSE 0 Summe Zähler 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s 1 GTE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s 59 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m 1 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s FALSE 0 GTE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m 59 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_h FALSE ADD 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_h 1 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m FALSE 0 Durchschnitt errechnen Betriebsstunden_Gesamt_Sek 0 Betriebsstunden_Gesamt_Sek MULTIPLY 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_h 3600 Betriebsstunden_Gesamt_Sek 1 MULTIPLY 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m 60 Betriebsstunden_Gesamt_Sek 1 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s Betriebsstunden_Gesamt_Schnitt_Sekunden DIVIDE 1 Betriebsstunden_Gesamt_Sek 3600 val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Anzahl_Starts_Gesamt 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_s FALSE Betriebsstunden_Gesamt_Schnitt_Sekunden 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_m FALSE Betriebsstunden_Gesamt_Schnitt_Sekunden 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_h FALSE Betriebsstunden_Gesamt_Schnitt_Sekunden Temperaturueberwachung_AllesAus any default km200.0.dhwCircuits.dhw1.actualTemp Temperatur_Aktuell state.val LTE state.val val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Min_Temperaturvorgabe_zur_Einschaltung TempOK TRUE GTE state.val val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Max_Temperaturvorgabe_zur_Abschaltung TempOK FALSE Gesamtlaufzeiten für Stringausgabe berechnen: Und Temperaturdifferenz berechnen: openknx.0.Keller_Heizung___Tropfwasserpumpe___Schaltaktoren.Keller_Schaltaktoren.KG_AMI_Schaltaktor_mit_Strommessung_Kanal_J_(Heizstab)_Schalten_Status ne state.val Temperaturdifferenz wärend Laufzeit berechnen bei Start Heizstab: Temperatur_vor_Start_Heizstab Temperatur_Aktuell state.val Gesamtlaufzeiten Summe: 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_String FALSE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_h : val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_m : val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Summe_s Gesamtlaufzeiten Durchschnitt:: 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Laufzeit_Durchschnitt_String FALSE val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_h : val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_m : val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsstunden.Werte.Durchschnitt_s Temperaturdifferenz wärend Laufzeit berechnen bei Ende Heizstab: Temperatur_Ende_Heizstab Temperatur_Aktuell 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Temperaturdifferenz_Nachheizung TRUE 1 sec FALSE MINUS 1 Temperatur_Ende_Heizstab 1 Temperatur_vor_Start_Heizstab Verbraucher_1_F Funktion um Verbraucher zu schalten Funktion Verbraucher schalten: warn Verbraucher 1 Verbraucher 1 EQ Verbraucher_Schalten TRUE zugeschaltet abgeschaltet NEQ val openknx.0.Keller_Heizung___Tropfwasserpumpe___Schaltaktoren.Keller_Schaltaktoren.KG_AMI_Schaltaktor_mit_Strommessung_Kanal_J_(Heizstab)_Schalten_Status Verbraucher_Schalten openknx.0.Keller_Heizung___Tropfwasserpumpe___Schaltaktoren.Keller_Schaltaktoren.KG_AMI_Schaltaktor_mit_Strommessung_Kanal_J_(Heizstab)_Schalten_EIN_AUS FALSE Verbraucher_Schalten create state LypjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLlBoYXNlXzEnLCB7DQogICBuYW1lOiAnUGhhc2UgMSBlaW5zY2hhbHRlbicsDQogICBkZXNjOiAnUGhhc2UgMSBlaW5zY2hhbHRlbicsDQogICB0eXBlOiAnYm9vbGVhbicsDQogICByb2xlOiAnc3dpdGNoJw0KfSk7DQoNCiovDQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuV29sa2VuZXJrZW5udW5nJywgew0KICAgbmFtZTogJ1dvbGtlbmVya2VubnVuZycsDQogICBkZXNjOiAnV29sa2VuZXJrZW5udW5nJywNCiAgIHR5cGU6ICdib29sZWFuJywNCiAgIHJvbGU6ICdzd2l0Y2gnLA0KICAgInN0YXRlcyI6IHsNCiAgICAgICAiZmFsc2UiOiAiS2VpbmUgV29sa2VuIGVya2FubnQiLA0KICAgICAgICJ0cnVlIjogIldvbGtlbiBlcmthbm50Ig0KICAgfQ0KfSk7DQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuQmV0cmllYnN2b3J3YWhsJywgew0KICAgbmFtZTogJ1BoYXNlIDEgQXVzL0Vpbi9BdXRvJywNCiAgIGRlc2M6ICdQaGFzZSAxIEF1cy9FaW4vQXV0bycsDQogICB0eXBlOiAnbnVtYmVyJywNCiAgIHJvbGU6ICd2YWx1ZScsDQogICAic3RhdGVzIjogew0KICAgICAgIjAiOiAiQXVzIiwNCiAgICAgICIxIjogIk1hbnVlbGwgRWluIiwNCiAgICAgICIyIjogIkF1dG9tYXRpayINCiAgICB9DQp9KTsNCg0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuQWt0dWVsbF9zJywgMCwgeyANCiAgICBuYW1lOiAnQWt0dWVsbF9zJywgDQogICAgZGVzYzogJ0FrdHVlbGxfcycsIA0KICAgIHR5cGU6ICdudW1iZXInLCANCiAgICB1bml0OiAncycsIA0KICAgIG1pbjogJzAnLCANCiAgICBtYXg6ICc2MCcsDQogICAgcmVhZDogdHJ1ZSwgDQogICAgd3JpdGU6IHRydWUgDQogICAgfSk7IA0KDQpjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLkJldHJpZWJzc3R1bmRlbi5XZXJ0ZS5Ba3R1ZWxsX20nLCAwLCB7IA0KICAgIG5hbWU6ICdBa3R1ZWxsX20nLCANCiAgICBkZXNjOiAnQWt0dWVsbF9tJywgDQogICAgdHlwZTogJ251bWJlcicsIA0KICAgIHVuaXQ6ICdtJywgDQogICAgbWluOiAnMCcsIA0KICAgIG1heDogJzYwJywNCiAgICByZWFkOiB0cnVlLCANCiAgICB3cml0ZTogdHJ1ZQ0KICAgIH0pOyANCg0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuQWt0dWVsbF9oJywgMCwgeyANCiAgICBuYW1lOiAnQWt0dWVsbF9oJywgDQogICAgZGVzYzogJ0FrdHVlbGxfaCcsIA0KICAgIHR5cGU6ICdudW1iZXInLCANCiAgICB1bml0OiAnaCcsIA0KICAgIG1pbjogJzAnLCANCiAgICBtYXg6ICcxMDAwMDAwJywNCiAgICByZWFkOiB0cnVlLCANCiAgICB3cml0ZTogdHJ1ZSANCiAgICB9KTsgDQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuQmV0cmllYnNzdHVuZGVuLldlcnRlLkxldHp0ZV9MYXVmemVpdF9zJywgMCwgeyANCiAgICBuYW1lOiAnTGV0enRlX0xhdWZ6ZWl0X3MnLCANCiAgICBkZXNjOiAnTGV0enRlX0xhdWZ6ZWl0X3MnLCANCiAgICB0eXBlOiAnbnVtYmVyJywgDQogICAgdW5pdDogJ3MnLCANCiAgICBtaW46ICcwJywgDQogICAgbWF4OiAnNjAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KICAgIH0pOyANCg0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuTGV0enRlX0xhdWZ6ZWl0X20nLCAwLCB7IA0KICAgIG5hbWU6ICdMZXR6dGVfTGF1ZnplaXRfbScsIA0KICAgIGRlc2M6ICdMZXR6dGVfTGF1ZnplaXRfbScsIA0KICAgIHR5cGU6ICdudW1iZXInLCANCiAgICB1bml0OiAnbScsIA0KICAgIG1pbjogJzAnLCANCiAgICBtYXg6ICc2MCcsDQogICAgcmVhZDogdHJ1ZSwgDQogICAgd3JpdGU6IHRydWUgDQogICAgfSk7IA0KDQpjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLkJldHJpZWJzc3R1bmRlbi5XZXJ0ZS5MZXR6dGVfTGF1ZnplaXRfaCcsIDAsIHsgDQogICAgbmFtZTogJ0xldHp0ZV9MYXVmemVpdF9oJywgDQogICAgZGVzYzogJ0xldHp0ZV9MYXVmemVpdF9oJywgDQogICAgdHlwZTogJ251bWJlcicsIA0KICAgIHVuaXQ6ICdoJywgDQogICAgbWluOiAnMCcsIA0KICAgIC8vIG1heDogJzEwMDAwMDAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KICAgIH0pOyANCg0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuTGF1ZnplaXRfU3VtbWVfcycsIDAsIHsgDQogICAgbmFtZTogJ0xhdWZ6ZWl0X1N1bW1lX3MnLCANCiAgICBkZXNjOiAnU3VtbWVfcycsIA0KICAgIHR5cGU6ICdudW1iZXInLCANCiAgICB1bml0OiAncycsIA0KICAgIG1pbjogJzAnLCANCiAgICBtYXg6ICc2MCcsDQogICAgcmVhZDogdHJ1ZSwgDQogICAgd3JpdGU6IHRydWUgDQogICAgfSk7IA0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuTGF1ZnplaXRfU3VtbWVfbScsIDAsIHsgDQogICAgbmFtZTogJ0xhdWZ6ZWl0X1N1bW1lX20nLCANCiAgICBkZXNjOiAnU3VtbWVfbScsIA0KICAgIHR5cGU6ICdudW1iZXInLCANCiAgICB1bml0OiAnbScsIA0KICAgIG1pbjogJzAnLCANCiAgICBtYXg6ICc2MCcsDQogICAgcmVhZDogdHJ1ZSwgDQogICAgd3JpdGU6IHRydWUgDQogICAgfSk7IA0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuTGF1ZnplaXRfU3VtbWVfaCcsIDAsIHsgDQogICAgbmFtZTogJ0xhdWZ6ZWl0X1N1bW1lX2gnLCANCiAgICBkZXNjOiAnU3VtbWVfaCcsIA0KICAgIHR5cGU6ICdudW1iZXInLCANCiAgICB1bml0OiAnaCcsIA0KICAgIG1pbjogJzAnLCANCiAgICAvLyBtYXg6ICcxMDAwMDAwJywNCiAgICByZWFkOiB0cnVlLCANCiAgICB3cml0ZTogdHJ1ZSANCiAgICB9KTsgDQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuQmV0cmllYnNzdHVuZGVuLldlcnRlLkR1cmNoc2Nobml0dF9zJywgMCwgeyANCiAgICBuYW1lOiAnRHVyY2hzY2huaXR0X3MnLCANCiAgICBkZXNjOiAnU2Nobml0dF9zJywgDQogICAgdHlwZTogJ21peGVkJywgDQogICAgdW5pdDogJ3MnLCANCiAgICBtaW46ICcwJywgDQogICAgbWF4OiAnNjAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlDQogICAgIH0pOyANCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuQmV0cmllYnNzdHVuZGVuLldlcnRlLkR1cmNoc2Nobml0dF9tJywgMCwgeyANCiAgICBuYW1lOiAnRHVyY2hzY2huaXR0X20nLCANCiAgICBkZXNjOiAnU2Nobml0dF9tJywgDQogICAgdHlwZTogJ21peGVkJywgDQogICAgdW5pdDogJ20nLCANCiAgICBtaW46ICcwJywgDQogICAgbWF4OiAnNjAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KICAgIH0pOyANCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuQmV0cmllYnNzdHVuZGVuLldlcnRlLkR1cmNoc2Nobml0dF9oJywgMCwgeyANCiAgICBuYW1lOiAnRHVyY2hzY2huaXR0X2gnLCANCiAgICBkZXNjOiAnU2Nobml0dF9oJywgDQogICAgdHlwZTogJ21peGVkJywgDQogICAgdW5pdDogJ2gnLCANCiAgICAvLyBtaW46ICcwJywgDQogICAgLy8gbWF4OiAnMTAwMDAwMCcsDQogICAgcmVhZDogdHJ1ZSwgDQogICAgd3JpdGU6IHRydWUgDQogICAgfSk7IA0KDQpjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLkJldHJpZWJzc3R1bmRlbi5XZXJ0ZS5BbnphaGxfU3RhcnRzX0dlc2FtdCcsIDAsIHsgDQogICAgbmFtZTogJ0FuemFobF9TdGFydHNfR2VzYW10JywgDQogICAgZGVzYzogJ0FuemFobF9TdGFydHNfR2VzYW10JywgDQogICAgdHlwZTogJ251bWJlcicsIA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KICAgIH0pOw0KDQpjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLkJldHJpZWJzc3R1bmRlbi5XZXJ0ZS5BbnphaGxfU3RhcnRzX3Byb19UYWcnLCAwLCB7IA0KICAgIG5hbWU6ICdBbnphaGxfU3RhcnRzX3Byb19UYWcnLCANCiAgICBkZXNjOiAnQW56YWhsX1N0YXJ0c19wcm9fVGFnJywgDQogICAgdHlwZTogJ251bWJlcicsIA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KICAgIH0pOw0KDQoNCg0KY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uUmVzZXQnLCAwLCB7IA0KICAgIG5hbWU6ICdSZXNldCcsIA0KICAgIGRlc2M6ICdSZXNldCcsIA0KICAgIHR5cGU6ICdib29sZWFuJywgDQogICAgZGVmOiBmYWxzZSwgDQogICAgcmVhZDogdHJ1ZSwNCiAgICB3cml0ZTogdHJ1ZSANCiAgICB9KTsgDQpjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLkJldHJpZWJzc3R1bmRlbi5UcmlnZ2VyX1N0YXRlJywgMCwgeyANCiAgICBuYW1lOiAnVHJpZ2dlcl9TdGF0ZScsIA0KICAgIGRlc2M6ICdTdGF0ZScsIA0KICAgIHR5cGU6ICdib29sZWFuJywNCiAgICByZWFkOiB0cnVlLCANCiAgICB3cml0ZTogdHJ1ZSANCiAgICB9KTsgDQoNCiAgICBjcmVhdGVTdGF0ZSgnMF91c2VyZGF0YS4wLkhlaXp1bmcuV2FybXdhc3NlcnNwZWljaGVyX1RhdWNoc2llZGVyLjFfUGhhc2lnLkJldHJpZWJzc3R1bmRlbi5XZXJ0ZS5MYXVmemVpdF9TdW1tZV9TdHJpbmcnLCAwLCB7IA0KICAgIG5hbWU6ICdMYXVmemVpdF9TdW1tZV9TdHJpbmcnLCANCiAgICBkZXNjOiAnU3VtbWVfU3RyaW5nJywgDQogICAgdHlwZTogJ21peGVkJywgDQogICAgdW5pdDogJ2gnLCANCiAgICAvLyBtaW46ICcwJywgDQogICAgLy8gbWF4OiAnMTAwMDAwMCcsDQogICAgcmVhZDogdHJ1ZSwgDQogICAgd3JpdGU6IHRydWUgDQogICAgfSk7IA0KDQogICAgY3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5IZWl6dW5nLldhcm13YXNzZXJzcGVpY2hlcl9UYXVjaHNpZWRlci4xX1BoYXNpZy5CZXRyaWVic3N0dW5kZW4uV2VydGUuTGF1ZnplaXRfRHVyY2hzY2huaXR0X1N0cmluZycsIDAsIHsgDQogICAgbmFtZTogJ0xhdWZ6ZWl0X0R1cmNoc2Nobml0dF9TdHJpbmcnLCANCiAgICBkZXNjOiAnRHVyY2hzY2huaXR0X1N0cmluZycsIA0KICAgIHR5cGU6ICdtaXhlZCcsIA0KICAgIHVuaXQ6ICdoJywgDQogICAgLy8gbWluOiAnMCcsIA0KICAgIC8vIG1heDogJzEwMDAwMDAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KICAgIH0pOw0KDQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuYWt0dWVsbGVyX1N0cm9tdmVyYnJhdWNoX2luX0tXL2gnLCB7DQogICBuYW1lOiAnQWt0dWVsbGVyIFN0cm9tdmVyYnJhdWNoIGluIEtXL2gnLA0KICAgZGVzYzogJ0FrdHVlbGxlciBTdHJvbXZlcmJyYXVjaCBpbiBLVy9oJywNCiAgIHR5cGU6ICdudW1iZXInLA0KICAgdW5pdDogIktXL2giLA0KICAgcm9sZTogJ3N0YXRlJw0KfSk7DQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuTWF4X1RlbXBlcmF0dXJ2b3JnYWJlX3p1cl9BYnNjaGFsdHVuZycsIHsNCiAgIG5hbWU6ICdUZW1wZXJhdHVydm9yZ2FiZSB6dXIgQWJzY2hhbHR1bmcgSGVpenN0YWInLA0KICAgZGVzYzogJ1RlbXBlcmF0dXJ2b3JnYWJlIHp1ciBBYnNjaGFsdHVuZyBIZWl6c3RhYicsDQogICB0eXBlOiAnbnVtYmVyJywNCiAgIHVuaXQ6ICLCsEMiLA0KICAgcm9sZTogJ3N0YXRlJywNCiAgICBtaW46ICcwJywgDQogICAgbWF4OiAnODAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KfSk7DQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuTWluX1RlbXBlcmF0dXJ2b3JnYWJlX3p1cl9FaW5zY2hhbHR1bmcnLCB7DQogICBuYW1lOiAnVGVtcGVyYXR1cnZvcmdhYmUgenVyIEVpbnNjaGFsdHVuZyBIZWl6c3RhYicsDQogICBkZXNjOiAnVGVtcGVyYXR1cnZvcmdhYmUgenVyIEVpbnNjaGFsdHVuZyBIZWl6c3RhYicsDQogICB0eXBlOiAnbnVtYmVyJywNCiAgIHVuaXQ6ICLCsEMiLA0KICAgcm9sZTogJ3N0YXRlJywNCiAgICBtaW46ICcwJywgDQogICAgbWF4OiAnODAnLA0KICAgIHJlYWQ6IHRydWUsIA0KICAgIHdyaXRlOiB0cnVlIA0KfSk7DQoNCmNyZWF0ZVN0YXRlKCcwX3VzZXJkYXRhLjAuSGVpenVuZy5XYXJtd2Fzc2Vyc3BlaWNoZXJfVGF1Y2hzaWVkZXIuMV9QaGFzaWcuVGVtcGVyYXR1cmRpZmZlcmVuel9OYWNoaGVpenVuZycsIHsNCiAgIG5hbWU6ICdUZW1wZXJhdHVyZGlmZmVyZW56IE5hY2hoZWl6dW5nJywNCiAgIGRlc2M6ICdUZW1wZXJhdHVyIGRpZSBpbiBkZXIgTGF1ZnplaXQgZGVzIEhlaXpzdGFiZXMgYXVmZ2VoZWl6dCB3dXJkZScsDQogICB0eXBlOiAnbnVtYmVyJywNCiAgIHVuaXQ6ICLCsEMiLA0KICAgcm9sZTogJ3N0YXRlJywNCiAgICByZWFkOiB0cnVlLCANCiAgICB3cml0ZTogdHJ1ZSANCn0pOw== Funktion um die ganzen States zu erzeugen func_gesamt_s_zu_h ICAgIHZhciBzZWt1bmRlbiA9IHNlayU2MDsNCiAgICB2YXIgcmVzdF9taW4gPSBzZWslMzYwMCAtc2VrdW5kZW47DQogICAgdmFyIG1pbnV0ZW4gPSByZXN0X21pbi82MDsNCiAgICB2YXIgc3R1bmRlbiA9IChzZWsgLSByZXN0X21pbiAtIHNla3VuZGVuKS8zNjAwOw0KDQpyZXR1cm4gc3R1bmRlbjs= Beschreibe diese Funktion … func_gesamt_s_zu_m ICAgIHZhciBzZWt1bmRlbiA9IHNlayU2MDsNCiAgICB2YXIgcmVzdF9taW4gPSBzZWslMzYwMCAtc2VrdW5kZW47DQogICAgdmFyIG1pbnV0ZW4gPSByZXN0X21pbi82MDsNCg0KcmV0dXJuIG1pbnV0ZW47 Beschreibe diese Funktion … func_gesamt_s_zu_s ICAgIHZhciBzZWt1bmRlbiA9IHNlayU2MDsNCnJldHVybiBzZWt1bmRlbi50b0ZpeGVkKDApOw== Beschreibe diese Funktion … Verbraucher nach Priorität definieren TempOK TRUE Betriebsvorwahl val 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsvorwahl Einschaltschwelle_Verbraucher_in_Watt 2100 Ausschaltschwelle_Verbraucher_in_Watt 500 Verbraucher_Schalten FALSE Wolkenerkennung_Eingeschalten FALSE Freigabe_von_Wechselrichter val openknx.0.Kellergeschoss_Binäreingänge.KG_Binäreingänge.KG_Binäreingang_C_Schalter Hilfsvariable_Einschaltverzoegerung_bereits_aktiv FALSE Alle Timeouts bei Scriptstart stoppen: timeout_Erzeugung_zu_niedrig timeout_Wolkenverzoegerung_einschalten timeout_Einschaltverzögerung any default modbus.0.inputRegisters.13009_Export_Power PV_Lastleistung_Einspeiseleistung state.val Hauptfreigabe: AND AND Wolken_erkannt Wolkenerkennung_Eingeschalten AND TempOK EQ Betriebsvorwahl 2 Startfreigabe Einschalten: AND AND Freigabe_von_Wechselrichter EQ Verbraucher_Schalten FALSE AND GT state.val Einschaltschwelle_Verbraucher_in_Watt Hilfsvariable_Einschaltverzoegerung_bereits_aktiv Hilfsvariable_Einschaltverzoegerung_bereits_aktiv TRUE warn Einschaltbedingung (Trigger Lastleistung) Timeout_Einschaltverzögerung aktiviert timeout_Erzeugung_zu_niedrig timeout_Einschaltverzögerung timeout_Einschaltverzögerung 5 min Hilfsvariable_Einschaltverzoegerung_bereits_aktiv FALSE Verbraucher_Schalten TRUE warn Einschaltbedingung (Trigger Lastleistung) Timeout_Einschaltverzögerung abgelaufen Abschalten Erzeugung zu niedrig: AND EQ Verbraucher_Schalten TRUE OR Freigabe_von_Wechselrichter LT state.val Ausschaltschwelle_Verbraucher_in_Watt warn Einschaltbedingung (Trigger Lastleistung) Timeout_Erzeugung_zu_niedrig aktiviert timeout_Einschaltverzögerung timeout_Erzeugung_zu_niedrig 5 min Verbraucher_Schalten FALSE warn Einschaltbedingung (Trigger Lastleistung) Timeout_Erzeugung_zu_niedrig abgelaufen timeout_Erzeugung_zu_niedrig warn Einschaltbedingung (Trigger Lastleistung) Timeout_Erzeugung_zu_niedrig STOP OR OR Wolken_erkannt Freigabe_von_Wechselrichter OR TempOK EQ Betriebsvorwahl 0 Verbraucher wird abgeschaltet !!! timeout_Einschaltverzögerung Verbraucher_Schalten FALSE warn Einschaltbedingung (Trigger Lastleistung) Alles abschalten. Irgendeine Freigabe fehlt! Wolkenerkennung: any true default openknx.0.Wetterdaten.Wetterdaten_Wetterstation.DG_Wetterstation_Helligkeit__Süd warn test Trigger Wolkenerkennung ausgelöst GT state.val 10500 Wolkenerkennung aktivieren: Wolkenerkennung_Eingeschalten TRUE AND GT PV_Lastleistung_Einspeiseleistung Einschaltschwelle_Verbraucher_in_Watt EQ Betriebsvorwahl 2 AND AND LT state.val 20000 Verbraucher_Schalten Wolkenerkennung_Eingeschalten warn test Wolken erkannt timeout_Wolkenverzoegerung_einschalten timeout_Wolkenverzoegerung_einschalten 10 min Wolken_erkannt TRUE 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Wolkenerkennung FALSE TRUE warn test Wolken erkannt und Melder eingeschaltet "true" !!! AND GT state.val 22000 Wolkenerkennung_Eingeschalten warn test Keine Wolken mehr erkannt timeout_Wolkenverzoegerung_einschalten Wolken_erkannt FALSE 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Wolkenerkennung FALSE FALSE Wolkenerkennung_Eingeschalten Wolkenerkennung deaktivieren: Wolkenerkennung_Eingeschalten FALSE 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Wolkenerkennung FALSE FALSE warn test Wolkenerkennung abgeschaltet !!! Manuelles Schalten durch Betriebsvorwahl: 0 = Aus 1 = Manuel Ein 2 = Automatikbetrieb 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.Betriebsvorwahl ne Betriebsvorwahl state.val EQ state.val 1 1 = Manuel Ein Verbraucher_Schalten TRUE EQ state.val 0 0 = Aus Verbraucher_Schalten FALSE Freigabe von Wechselrichter in Variable schreiben: knx.0.Kellergeschoss_Binäreingänge.KG_Binäreingänge.KG_Binäreingang_C_Wert_für_Umschaltung ne Freigabe_von_Wechselrichter state.val Umrechnung von A --> KW für Energiediagramm: openknx.0.Erdgeschoss_Zentralfunktionen.Messwerte.EG_AMI_Kanal_J_Stromwert ne 0_userdata.0.Heizung.Warmwasserspeicher_Tauchsieder.1_Phasig.aktueller_Stromverbrauch_in_KW/h FALSE 2 3.1234 DIVIDE 1 MULTIPLY 1 state.val 1 val sonoff.0.Tasmota Energiezähler.SML_Spannung L1 1 1000