Zustandsänderung nur einmal ausführen

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Zustandsänderung nur einmal ausführen

Beitrag von Familienvater » 17.10.2016, 21:40

Hi, mir schwannt gerade böses:

Code: Alles auswählen

  wenn Bad.Fenster geoeffnet dann
    wenn Badfensterstatus_LED <> "rot" dann
      QuelleUmschaltung:="Bad.Fenster geoeffnet ("+Bad.Fenster+") und Badfensterstatus_LED ("+Badfensterstatus_LED+") <> rot"
      Badfensterstatus_LED:= "aus"
    endewenn
 sonst
    wenn Badfensterstatus_LED <> "aus" dann
      QuelleUmschaltung:="Bad.Fenster geschlossen ("+Bad.Fenster+") und Badfensterstatus_LED ("+Badfensterstatus_LED+") <> aus"
      Badfensterstatus_LED:= "aus"
    endewenn
  endewenn
Es kann sein, das Bad.Fenster geoeffnet und Bad.Fenster geschlossen aus irgendeinem Grund beide WAHR sind, damit würde erst ausgeschaltet, und bei der nächsten Prüfung in der gleichen Routine ist dann natürlich die LED nicht mehr aus, und wird damit aus geschaltet.

Also denn Status von Bad.Fenster mit loggen!!!

DJDieter
Beiträge: 315
Registriert: 11.01.2008, 14:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 34 Mal
Danksagung erhalten: 20 Mal

Re: Zustandsänderung nur einmal ausführen

Beitrag von DJDieter » 17.10.2016, 21:53

Muß ich den Code in das neue Textobjekt schreiben oder in "Bad"? Wie muß das Textobjekt heißen?
Raspberry PI 4 mit RaspberryMatic, 4 LAN-Gateways, zwei HmIP-HAP und 248 Geräte
CUxD mit 357 Kanälen auf 64 Geräten
Zusatzsoftware: XML-API, CUxD-Highcharts, NEO-Server, Programmedrucken, CUxD, E-Mail, Philips Hue, Messenger, CCU-Historian, JB-HP-Devices, HomeKit HomeMatic
Anbindungen: Wolf eBus; NodeMCU-Ultraschall-Füllstandsmessung mit Temperatureinfluß; Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Zustandsänderung nur einmal ausführen

Beitrag von Familienvater » 17.10.2016, 22:02

Hi,
das Textobjekt muss QuelleUmschaltung heißen, und das ganze muss in das Bad-Objekt. Es soll ja bei jedem Empfang bzw. bei jeder Änderung, wo evtl. die LED umgeschaltet wird, zusätzlich das Text Objekt geändert werden, damit das mit in die History geloggt wird.

Ich glaube inzwischen, das erst die obere Bedingung "wahr ist", und danach die untere auch. Durch das "sonst" dürfte jetzt nur noch eine wahr sein...

Der Familienvater

DJDieter
Beiträge: 315
Registriert: 11.01.2008, 14:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 34 Mal
Danksagung erhalten: 20 Mal

Re: Zustandsänderung nur einmal ausführen

Beitrag von DJDieter » 17.10.2016, 22:26

O.K., hab ich so gemacht. Nachfolgend der History-Log:
17.10.2016/22:09:09;QUELLEUMSCHALTUNG;Bad.Fenster geoeffnet (0) und Badfensterstatus_LED (aus) <> rot;[1]
17.10.2016/22:09:09;BADFENSTERSTATUS_LED;rot;(1);[1]
17.10.2016/22:13:05;BAD;17.5;[2]
17.10.2016/22:17:01;BAD;8.0;[2]
17.10.2016/22:17:03;QUELLEUMSCHALTUNG;Bad.Fenster geschlossen (1) und Badfensterstatus_LED (rot) <> aus;[1]
17.10.2016/22:17:03;BADFENSTERSTATUS_LED;aus;(0);[1]
17.10.2016/22:19:00;BAD;17.5;[2]
17.10.2016/22:19:00;QUELLEUMSCHALTUNG;Bad.Fenster geoeffnet (0) und Badfensterstatus_LED (aus) <> rot;[1]
17.10.2016/22:19:01;BADFENSTERSTATUS_LED;rot;(1);[1]

So wie es aussieht, funktioniert es. Das hätte ich im Leben nicht gebacken bekommen. Jedoch wird das Fenster als "offen" angezeigt, obwohl es "zu" ist und umgekehrt. Vielen Dank für die Hilfe. Da ich den Code nicht kapier - wie muß er jetzt sein, ohne "QuelleUmschaltung"?
Raspberry PI 4 mit RaspberryMatic, 4 LAN-Gateways, zwei HmIP-HAP und 248 Geräte
CUxD mit 357 Kanälen auf 64 Geräten
Zusatzsoftware: XML-API, CUxD-Highcharts, NEO-Server, Programmedrucken, CUxD, E-Mail, Philips Hue, Messenger, CCU-Historian, JB-HP-Devices, HomeKit HomeMatic
Anbindungen: Wolf eBus; NodeMCU-Ultraschall-Füllstandsmessung mit Temperatureinfluß; Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Zustandsänderung nur einmal ausführen

Beitrag von Familienvater » 17.10.2016, 22:46

Hi,

ich würde einfach auf Bad.Fenster = 0 prüfen, anstelle von Bad.Fenster geoeffnet. Eigentlich ergibt sich das Gegenteil durch das sonst von alleine, dann muss nur noch die LED entsprechend richtig geschaltet werden.

Damit beweist sich mal wieder mein Grundsatz: Loggen, Loggen, und noch mal Loggen... Zur Not eben jede Zeile, vor jeder Überprüfung die wahren Zustände rausschreiben, und dann ggf. wieder loggen, welcher Zustand wirklich erkannt wurde.
Eigentlich ist das viel zu mühsam und wäre "normalerweise" auch nicht notwendig, wenn die Exec-Engine UNSERE EIGENE graue Hirnmasse enthalten würde. Da die EE graue Hirnmasse von anderen enthält, muss man evtl. rausfinden, was für die andere Hirnmasse unser Verständnis wäre. Das ganz gemeine ist, das ganz selten auch die graue Hirnmasse der EE ihre Meinung mit einer neuen Version grundlegend ändert, ohne das vorher Kund zu tun. Das merkt man dann nur, wenn auf einmal was anders funktioniert als vorher. Und dann ist eher der letzte Gedanke, das sich die Funktionsweise der EE geändert hat. Passiert zum Glück äußerst selten, aber kommt leider gaaanz selten vor...

Der Familienvater

DJDieter
Beiträge: 315
Registriert: 11.01.2008, 14:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 34 Mal
Danksagung erhalten: 20 Mal

Re: Zustandsänderung nur einmal ausführen

Beitrag von DJDieter » 18.10.2016, 00:07

Jetzt hab ich mir mal den Spaß erlaubt und mein ursprüngliches Makro auf die Prüfung "Bad.Fenster = 1" anstatt "Bad.Fenster geoeffnet" geändert. Damit funktioniert auch das ursprüngliche Makro tadellos. Sachen gibt's ... :shock:
Raspberry PI 4 mit RaspberryMatic, 4 LAN-Gateways, zwei HmIP-HAP und 248 Geräte
CUxD mit 357 Kanälen auf 64 Geräten
Zusatzsoftware: XML-API, CUxD-Highcharts, NEO-Server, Programmedrucken, CUxD, E-Mail, Philips Hue, Messenger, CCU-Historian, JB-HP-Devices, HomeKit HomeMatic
Anbindungen: Wolf eBus; NodeMCU-Ultraschall-Füllstandsmessung mit Temperatureinfluß; Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Antworten

Zurück zu „homeputer CL“