ich würde in meinem LCN-Projekt gerne abfragen, ob eine Taste gesperrt ist. Theoretisch funktioniert das super mit dem IPS-Kommando LCN_SENDCOMMAND und dem PCHK-Kommando STX, aber leider bekomme ich als Rückgabe nicht die Antwort von LCN, sondern ‚nur‘ eine 1 für ‚Befehl erfolgreich ausgeführt‘.
Zwei Gedanken
Gibt es jetzt bereits eine Möglichkeit, den Status einer Taste (gesperrt/nicht gesperrt) abzufragen?
Wenn nicht, dann würde ich das gerne an Dich, @paresy als Feature-Request für eine künftig IPS-Versionen einreichen
schön von Dir zu lesen. Dank Deiner Empfehlung werkelt hier jetzt eine SymBox, bin mega zufrieden und hab’ in einem anderen Thread eine Anleitung geschrieben, so dass Gleichgesinnte einen leichteren Einstieg haben
Leider weiß ich nicht, ob die Meldungen in den Bus gepusht werden. Vermutlich aber nicht, denn es gibt ja laut LCN-PCK-Doku den Abfragebefehl STX. Habe (aus der üblichen Quelle) eine PCK-Doku Stand 08.2017, dort auf Seite 15 zu finden. Der würde mir helfen, möchte nur abfragen, um sicherzugehen, dass alles einwandfrei läuft.
Schön wäre es, analog der Symcon-GET-Befehle ein LCN_GetSwitchStatus(InstanzID); zu haben, das dann den Status der Tastensperren abfragt und z.B. in einem Array pro Tastentabelle A-D und Status zurückgibt.
möchte das Thema noch einmal in Erinnerung rufen und würde mich freuen, wenn es in einer der kommenden Symcon-Versionen…
entweder die Möglichkeit gibt, LCN-Befehle so abzusetzen, dass man die Rückgabe von LCN erhält (vielleicht zusätzlich zum bisher implementierten Status noch ein Array mit der LCN-Antwort),
oder es einen Symcon-Befehl zur Abfrage gesperrter Tasten gibt.
Hintergrund: habe ein Skript bei mir laufen, das 1/Tag zwei Tasten sperrt und 1,5h später wieder entsperrt (Sinn: Heizbetrieb in zwei Räumen manuell auslösen, auch wenn Solltemperatur höher als Isttemperatur ist). Etwa 1/Monat wird die Tastensperre per LCN-Befehl nicht wieder herausgenommen, obwohl der LCN_SendCommand als Returnwert ‚true‘ meldet (also landläufig alles OK sein und funktioniert haben sollte).
es ist in IPS eher selten, dass wir asynchrone Antworten direkt als Rückgabewert liefern. Somit wäre der Weg eine Request-Funktion zu bauen, welche dann den aktuellen Status in eine Variable schreibt.
Ich verschiebe mal das Thema in den Wünsche Bereich - da die Nachfrage zu dem Thema aber bisher eher moderat ausfällt, glaube ich nicht, dass dies sehr zeitnah kommen wird. Ggf. macht es also sinn, wenn du dir den Workaround mit Register Variable noch einmal anschaust.
möchte das Thema noch einmal pushen. Konnte es nicht in den Wünschen finden.
Wie kann das priorisiert werden? Den Workaround halte ich für Ressourcenverschwendung in LCN (redundante Hinterlegung des Zustandes) und bei wenigen Modulen auch schwer umsetzbar, weil man freie virtuelle Relais dafür braucht.
Eine Abfragemöglichkeit wäre einfach klasse und ist meines Erachtens auch super leicht umsetzbar, da im LCN-Befehlssatz bereits integriert.