ich haette gerne einmal gewusst, inwiefern Loxone die Befehle intern verarbeitet.
Bei einer SPS ist es ja so, das es einsprungsbaustein gibt. dieser wird zuerst aufgerufen und sturr Befehl von oben nach unten abgearbeitet, incl den ganzen Sprunganweisungen. Ist dann der komplette Source Code verarbeitet wurden, beginnt es wieder von vorne. Sprich es wird alles zyklisch abgearbeitet. Wie ist es denn nun bei Loxone?
Meine Frage beruft sich darauf das ich derzeit folgendes Problem habe.
Über eine Zeitschaltuhr (Software von Loxone) kann ich eine Zeit einstellen, wann die Wohnung von den Tag in den Nachtmodus geht. Geschieht, dies sollen unter anderem folgendes geschehen.
Wenn Nachtmodus eingeschalten wird:
1: Der Subwoofer soll abgeschalten werden
2: Wenn Receiver an
* Zone 2 einschalten
* Lautstärke Zone 2 setzen
* Zone 2 auf Mainsource schalten
* Mainzone Mute
3: Wenn Receiver aus
* nichts machen
Wenn TagModus eingeschalten wird
1: Subwoofer einschalten
2: Wenn Receiver an
* MainZone Mute abschalten
* Zone 2 ausschalten
3: Wenn Receiver aus
* nichts machen
Folgendermassen habe ich es wie folgt realisiert
1: Subwoofer wird über ein Nicht vom Merker Nachtmodus geschalten
2: Merker Nachtmodus geht auf eine Flankenerkennung. der Ausgang veranlasst die Daten aus dem Receiver auszulesen ( über MQTT)
3: Merker Nachtmodus, die Werte ( Power, Response, Http Status) gehen auf ein Status Bausstein. Dieser gibt je nachdem einen Wert -2 bis 2 aus für das was gemacht werden soll
( 0 = Gerät offline, nichts machen, -1 und -2 Fehlerhafte abfragen, 1 = Nachtmodus setzen, 2 = Tagesmodus setzen
4: Ausgang vom Status Bausstei gehen auf Vergleicher und deren Ausgänge gehen wiederrrum auf verzögerte Impulse, wo die Befehle nacheinander dann gesendet werden.
Soweit klappt auch fast alles wunderbar. Das Problem was ich habe ist folgendes
Bei der letzten Umschalten in den Tagesmodus war der Receiver an. Durch die letzte Abfrage, bekam ich für Power ein On. Nun wird der Receiver via Hand abgeschalten und es findet die nächste Umschaltung statt. Die Werte werden brav vom Receiver ausgelesen. Er liefert auch ein Standby, aber das Programm arbeitet, vorher noch den Status Bausstein ab. dort ist ja noch ein on und somit wird versucht den Receiver auf mute zu schalten ( Nicht weiter schlimm, da er eh auf standby ist). Aber nun wird Zone 2 eingeschalten, was er nicht soll.
Wie könnte man das alles am besten umgehen? Also das er erst die Werte auslesen tut und erst danach im Programm weiter macht.
LG Alex
Kommentar