Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugins programmieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • callidomus
    antwortet
    Zitat von JuMi2006 Beitrag anzeigen
    Mit sh.scheduler.add übergebe ich dem scheduler eine Einstiegs-Funktion/Methode im Plugin und ein bestimmtes Intervall.
    ja stimmt. Genauer: zum initialisieren wird __init__ aufgerufen. run wird bei dem Start des Plugins aufgerufen. Mit dem scheduler.add kann man periodisch eine Methode ausführen.

    Zitat von JuMi2006 Beitrag anzeigen
    Die Funktion/Methode update_item wird immer dann ausgeführt wenn sich ein item (von außen?) ändert -> Visu,KNX etc.
    fast, jedes Item ruft eine Pluginmethod parse_item auf, sofern sie vorhanden ist. Wenn das Item über Updates benachrichtigt werden möchte, returned es eine Methode. Diese heißt in der Regel update_item.

    Zitat von JuMi2006 Beitrag anzeigen
    Nehmen wir an ich habe ein item dass durch ein xyz-Plugin geschrieben wird, so würde gleichzeitig (und ohne weiteres zutun?) das KNX-Plugin mir die Rückmeldung auf den Bus senden (sofern ich knx_listen/_send definiert habe) ?
    ja, das ist korrekt.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Gestern hat es dann doch noch einen größeren Klick gemacht (hoffe ich). Also ich verstehe das jetzt folgendermaßen:

    Das Plugin wird (wie auch immer) erstmal initialisiert.

    Mit sh.scheduler.add übergebe ich dem scheduler eine Einstiegs-Funktion/Methode im Plugin und ein bestimmtes Intervall.

    Die Funktion/Methode update_item wird immer dann ausgeführt wenn sich ein item (von außen?) ändert -> Visu,KNX etc.

    Nehmen wir an ich habe ein item dass durch ein xyz-Plugin geschrieben wird, so würde gleichzeitig (und ohne weiteres zutun?) das KNX-Plugin mir die Rückmeldung auf den Bus senden (sofern ich knx_listen/_send definiert habe) ?


    Grüße

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Ich kämpf mich mal so durch...hab mir das Luxtronic als Vorlage genommen und versuche mal so langsam Python zu verstehen.

    Ich versuche dann mal detaillierte Fragen zu formulieren.

    Grüße

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Mirko,

    Zitat von JuMi2006 Beitrag anzeigen
    Wenn ein Plugin zyklisch aufgerufen werden soll, bzw. im Plugin bestimmte Routinen zyklisch ablaufen sollen und Werte an items übergeben werden soll wie stelle ich das an?
    mit sh.scheduler.add
    Siehe z.B. https://github.com/mknx/smarthome/bl...init__.py#L255

    Zitat von JuMi2006 Beitrag anzeigen
    In meinem Fall möchte ich eine TCP/Telnet Verbindung öffnen die auch ständig offen bleiben kann.
    Wenn das Intervall länger ist und es ingesamt nicht so Zeitkritisch, würde ich die Verbindung an Deiner Stelle neu aufbauen.

    Bei Fragen oder Codefeedback kannst Du gerne auf mich zukommen.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • JuMi2006
    hat ein Thema erstellt Plugins programmieren.

    Plugins programmieren

    Irgendwie fehlt mir der Einstieg bzw. der Zusammenhang zwischen den Plugins und dem Hauptprozess.

    Wenn ein Plugin zyklisch aufgerufen werden soll, bzw. im Plugin bestimmte Routinen zyklisch ablaufen sollen und Werte an items übergeben werden soll wie stelle ich das an?
    In meinem Fall möchte ich eine TCP/Telnet Verbindung öffnen die auch ständig offen bleiben kann.
    Danach dann (in Abhänigkeit von KNX-Telegrammen) Befehle an die gleiche senden und die Antwort auswerten.
    Ich muss also das Plugin (oder eine subroutine) aufrufen und bestimmte Parameter übergeben um den Befehl zuzuordnen und die Antwort dann wieder zurücksenden.

    Die Kommunikation zwischen Python und TCP funktioniert (als kleines Script) aber mir fehlt irgendwie die Übergabe an smarthome.py bzw. das grundsätzliche Verständnis wie Plugins realisiert werden können.

    Grüße
Lädt...
X