[GELÖST] Programmaufruf liefert falsches Ergebnis

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
lpop
Beiträge: 63
Registriert: 16.09.2017, 23:33
Hat sich bedankt: 7 Mal

[GELÖST] Programmaufruf liefert falsches Ergebnis

Beitrag von lpop » 23.02.2018, 17:00

Hallo,
ich habe ein kleines Problem mit der Logik von Programmen, weiß aber nicht wie ich es lösen kann.

Es geht um die Verbindung von einer Fernbedienung (HmIP-RC8), einem FungGong (HM-OU-CFM-TW)
und ein paar Fensterkontakte (HMIP-SWDO).

Ich habe an der Fernbedienung eine Taste bei der ich prüfen kann ob ein Fenster geöffnet ist und
dann wird eine mp3 auf dem Funkgong abgespielt mit dem entsprechenden Ergebnis.
Das Programm (FBEG-R04-RE-KU) hinter der Taste ist ein Klicki Bunti Progrämmchen mit vielen Wenn's und Dann's. Das funktioniert sehr gut.

Eine zweite Taste ruft ein Programm (FBEG-R04-LI-LA) auf und schaltet damit alle Verbraucher aus und außerdem ruft es mit Verzögerung das Programm FBEG-R04-RE-KU auf, welches mir anschließend sagen soll ob alle Fenster geschlossen sind oder nicht.
Das Programm FBEG-R04-RE-KU wird hier per script aufgerufen.
var programObj = dom.GetObject("FBEG-R04-RE-KU");
programObj.ProgramExecute();

Nun ist es so, dass hier immer das erste DANN ausgeführt wird und damit das Ergebnis im Funkgong nicht stimmt.

Wie kann ich dies denn sonst realisieren?
Oder muss ich diese Klicki Bunti Programm komplett als Script realisieren. Das wäre sehr aufwendig für mich.

Gruß
lpop

Benutzeravatar
robbi77
Beiträge: 13842
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 181 Mal
Danksagung erhalten: 737 Mal

Re: Programmaufruf liefert falsches Ergebnis

Beitrag von robbi77 » 23.02.2018, 17:13

Mit einer Systemvariablen, die im ersten Programm umgeschaltet wird, somit das zweite Programm triggert und im zweiten Programm auch wieder zurück gestellt wird.
Dein Scriptaufruf ist das gleiche wie wenn du das Programm manuell auslöst.


Gruß
Roberto
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Programmaufruf liefert falsches Ergebnis

Beitrag von JRiemann » 23.02.2018, 17:20

ProgramExecute() ist nichts anderes wie das händische Ausführen eines Programms z.B. über den Button "Ausführen" in der WebUI.
Beim händischen ausführen wird IMMER das erste DANN ohne Berücksichtigung der Bedingungen ausgeführt.

Um ein Programm auszulösen eignet sich am besten eine virtuelle Taste der CCU oder eine virtuelle Taste des CuXD.
Diese fügst Du im WENN oder SONST-WENN als Auslöser ein.
Ein Tastendruck z.B. aus dem DANN eines anderen Programms heraus löst dann den Durchlauf samt Prüfung der Bedingungen aus.
Viele Grüße!
Jörg

lpop
Beiträge: 63
Registriert: 16.09.2017, 23:33
Hat sich bedankt: 7 Mal

Re: Programmaufruf liefert falsches Ergebnis

Beitrag von lpop » 24.02.2018, 12:36

Konnte es mit der virtuelle Taste der CCU2 lösen. Wieder was gelernt. Danke für den Tipp.

Antworten

Zurück zu „RaspberryMatic“