Ankündigung
Einklappen
Keine Ankündigung bisher.
Plugins programmieren
Einklappen
X
-
so habs mal soweit geschafft das bei parse_item die entsprechenden daten über die serielle angefordert werden und die item values entsprechend geupdatet werden....
testweise hab ich mal über ein basic.switch ein item geändert und ich bekomme dann die warnung: "Client want to update read only item"
die methode die bei parse_item übergeben wurde wird nicht ausgeführt, woher nimmt er die info das es nur ein "read only" item ist?
Einen Kommentar schreiben:
-
danke für die Rückmeldungen, jetzt ist mir wieder einiges klarer und ich werde mal mein Glück versuchen
stimmt in 90% der Fälle reicht es wohl wenn sh.py zyklisch die Daten anfordert, ich denke ich werde das erstmal auch so machen....
Einen Kommentar schreiben:
-
Hi,
ja run ist die Methode in der die while self.alive Schleife laufen sollte.
asynchat wurde durch lib.connection ersetzt und kann, glaube ich, nicht mit Seriellen umgehen. Das wollte ich mal angehen, mir fehlt aber ein Anwendungsfall bei dem ich bidirektional auf eine Serielle zugreifen muss.
Bis bald
Marcus
Einen Kommentar schreiben:
-
Oder asynchat nutzen, das sollte auch mit einem seriellen Port gehen
Einen Kommentar schreiben:
-
Ich würde in der run-Methode "verweilen" oder dort auf eine neue, eigene Methode verweisen. Sieh Dir mal das EnOcean Plugin diesbezüglich an.
Einen Kommentar schreiben:
-
und wie erstellt man im plugin einen solchen task der ständig läuft?
mit self._sh.scheduler.add erstellte tasks werden ja zyklisch immer wieder von neuem gestartet?
Einen Kommentar schreiben:
-
In dem dein Plugin direkt auf die serielle Schnittstelle lauscht und ankommende Daten damit selber mitbekommt
Einen Kommentar schreiben:
-
alles klar danke, sprich momentan gibts nur die sourcen als doku?
Mir ist allerdings noch nicht ganz klar wie die Verbindung zur Aussenwelt realisiert wird die nicht über ein item kommt. Konkret geht es um eine serielle Schnittstelle an der sporadisch daten daherkommen, wenn diese daten kommen will ich prüfen ob ein item dafür konfiguriert wurde und wenn ja dieses updaten. Wie kann ich sh.py aber sagen das bei anstehenden daten an der seriellen schnittstelle die entsprechende methode aus meinem Plugin aufgerufen wird?
Einen Kommentar schreiben:
-
parse_item wird für jedes Item beim Start von sh.py aufgerufen. Diese Methode kann dann eine Funktion zurückgeben, die bei Itemänderung getriggert wird. Oft nennt man diese Methode update_item, aber prinzipiell kann man die Methode nennen wie man möchte. Schau dir nochmal ein paar Plugins an, dann sollte das nun klarer werden.
Einen Kommentar schreiben:
-
ahh gut das ich den thread gefundne habe, hat sich wieder einiges aufgelöst
wie genau wird das realisiert, denke mal es hat was mit handle_connection zu tun?Zitat von mknx Beitrag anzeigenPrinzipiell hängt das erst einmal vom Plugin ab. Wenn das Plugin bzw. das Backend an das die Anbindung realisiert wird gut ist, dann wird das Item sofort geändert. z.B. bei Asterisk, KNX,CLI, Network, Russound und Visu Plugin.
Die anderen Plugins müssen den Zustand (regelmäßig) pollen, da das Backend keine Notifications bei Änderung unterstützt.
Beim pollen wird ein thread erstellt der endlos läuft und einmal z.b. beim starten angeworfen wird und nicht über cycle alle x sekunden aufgerufen wird?
welche methoden werden von sh.py aufgerufen und wann, gibts da irgendwo eine liste?
__init__ beim Plugin initialisieren
run beim starten des Plugins
stop beim stoppen des Plugins
parse_item ?
update_item ?
gibts noch mehrere und was passiert wenn diese methoden im plugin nicht existieren?
Fragen über Fragen, hoffe es kann jemand licht ins dunkle bringen
Danke!
Einen Kommentar schreiben:
-
Hab ich hier getan: https://knx-user-forum.de/316183-post43.html
Ist jetzt kein Killerfeature, eher die Frage ob sich da zwischenzeitlich was geändert hat da der Pi aus der Wärmepumpe rausfliegt und alles auf sh.py auf dem eigenen Server umgestellt wird.
Einen Kommentar schreiben:
-
Ja, aber erzähl doch was Du machen möchtest.Zitat von JuMi2006 Beitrag anzeigenAlso nur der Weg über die zusätzlich Logik ?
Bis bald
Marcus
Einen Kommentar schreiben:


Einen Kommentar schreiben: