Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisfrage für den Beginner

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

  • brunosa3
    antwortet
    Für den Fall, dass sich noch jemand anderes für die Frage interessiert.

    Nach meinem kurzen Versuch scheint es als würde die oben beschriebene regex Methode nur zum triggern einer Logik aber nicht zum setzen eines Items in der Logik selbst funktionieren.

    Nun habe ich die Methode item.return_children() entdeckt durch welche ich mich einfach durch schleife, um in dem Beispiel unten den Klingelton aus den Deckenlautsprecher zu quittieren - sobald entweder die Tür geöffnet wurde oder 1min vorbei ist.

    Code:
    import time
    
    timeout = 60 # [seconds]
    timeout_start = time.time()
    
    while time.time() < timeout_start + timeout:
        if sh.haus.eg.flur.tuere.zu() == False:
            sh.haus.eg.flur.audio.klingel('')
    
            for item in sh.haus.eg.return_children():
                try:
                    item.audio.status(0)
                except:
                    logger.warning("Try except error by shut down - door opened in time! with item {}".format(item))

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    mumpf vielen Dank - das ist nun klar.

    Es tt mir Leid, wenn ich so abschweife aber eine kleine Frage hätte ich noch zu Items in generel: In der Doku über Items lese ich das man eine Logik auch über regex style triggern könnte zB
    Code:
    haus.eg.*.audio.status
    anstatt jedes item/raum im EG zu definieren (
    Code:
    - haus.eg.wc.audio.status
    - haus.eg.kueche.audio.status
    - haus.eg.wohnzimmer.audio.status
    und so weiter).

    Nun frage ich mich - ist es auch möglich elegant mehrere items gleichzeitig zu setzen - um beim Beispiel zu bleben zB sowas wie
    Code:
    sh.haus.eg.*.audio.status(1)

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    ob über das nw-Plugin oder vielleicht über ein Panel-spezifischeres Plugin laufen sollte (dass es vielleicht schon gibt oder das Du schreiben könntest), kann ich so abstrakt nicht sagen. Hängt davon ab, was die Panel-Raspis eigentlich machen. Aber wenn Du ein Panel-Plugin hättest, dann würde man dafür dann 3 Panel-Plugin-Instanzen benötigen (damit jedes Panel einzeln adressierbar wäre), zum Bus hin würden die über shNG und somit trotzdem nur über eine knxd-Instanz reden.

    Du kannst natürlich auch auf einem Panel-Raspi den knxd nutzen, um Daten vom/zum Bus zu senden bzw. zu empfangen, aber diese knxd-Instanzen müssen nicht shNG nicht bekannt sein (meiner Meinung nach sollten sie das nicht sein). Denn das wäre dann nur eine Implementierung der Kommunikation des Panels zum Bus, aus Sicht des Busses und shNG also einfach ein weiteres KNX-Gerät.

    Sobald Fremdgeräte mit "Rechner-Intelligenz" angebunden werden sollen, sind die Möglichkeiten vielfältig, aber wenn die Fremdgeräte IP können, würde ich diesen Weg eher nutzen als alles über den Bus zu tunneln.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    Wie würde dieses Szenario in der Praxis aussehen?

    ich habe auf dem Hauptserver shNG laufen und die 3xraspi's sprechen über TCP/IP (nw plugin) mittels shNG (Hauptserver) zum Bus?

    Vielen Dank für den Hinweis

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    Zitat von brunosa3 Beitrag anzeigen
    Wollte von allen flexibel auf den Bus kommen.
    natürlich kannst Du von allen Raspi über knxd auf den Bus oder dort gar eigene shNG-Instanzen laufen lassen, aber oben wäre das ein anderes Szenario: In einem shNG verschiedene knxd-Instanzen nutzen. Dazu fallen mir nur getrennte Bussegmente (Linien) als Szenario ein, die man selber kontrolliert über shNG koppeln möchte anstatt generisch über einen LK. Und ich glaube, das willst Du nicht.

    Bei Deinem Wunsch, verschiedene Raspi (egal ob mit Panels oder sonst was dran) mit dem Bus zu koppeln sollten die Raspi einfach über IP mit der shNG-Instanz sprechen und die schickt dann die Daten auf den Bus.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    mumpf ich hab nicht wirklich ein Scenario.

    Ich habe einfach drei raspi's im Haus die jeweils an einem Touchpanel hängen. Zusätzlich habe ich noch einen richtigen Server der noch nicht aufgesetzt ist und später für grössere Sachen wie zB Gesichtserkennungen genutzt wird. Wollte von allen flexibel auf den Bus kommen.

    Sisamiwe vielen Dank

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von brunosa3 Beitrag anzeigen
    Macht Sinn - dann kann man aber wahrscheinlich in den Items auch sowas schreiben wie
    Die richtige Schreibweise für das Attribut ist:

    ohne Instanz
    Code:
    knx_listen: x/x/x
    mit Instanz:
    Code:
    kxn_listen@instance: x/x/x
    Wäre also bei deiner "alten" Konfig:
    Code:
    knx_listen@merry: x/x/x

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    Zitat von brunosa3 Beitrag anzeigen
    Momentan habe ich nur eine Anbindung an den Bus - Plane aber in Zukunft noch eine zweite,
    nur Interesse halber: Was wäre Dein Szenario, so was zu machen?

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    Sisamiwe Macht Sinn - dann kann man aber wahrscheinlich in den Items auch sowas schreiben wie

    instance:
    - knx1
    - knx2

    um beide Anbindungen mit dem Item zu verknüpfen, ist das richtig?

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von brunosa3 Beitrag anzeigen
    Momentan habe ich nur eine Anbindung an den Bus - Plane aber in Zukunft noch eine zweite, deshalb habe ich hier eine Instanz gesetzt. Wenn es so ist würde ich den Plan über den Haufen werfen und bei einer Anbindung bleiben
    Ja, du musst dann bei jedem Itemattribut angeben, welche Instanz des Plugins genutzt werden soll.
    Ein Beispiel: Ich habe 2 Fritzboxen und habe diese eingebunden. Nun sind die Befehle ja für beide Fritzboxen mit dem AVM Plugin gleich. Woher soll shNG nun wissen, welches Gerät du ansprechen möchtest. Ähnlich wäre es ja auch bei deinem KNX. Woher soll shNG wissen, welche Busanbindung genutzt werden soll?

    Zitat von brunosa3 Beitrag anzeigen
    Danke Euch
    Gern!

    Viel Spaß nun.

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    Sisamiwe

    Ohhhhhhh ..... das war es die Instanz war das Problem - müsste ich in jedem Item dann die Instanz setzen?

    Momentan habe ich nur eine Anbindung an den Bus - Plane aber in Zukunft noch eine zweite, deshalb habe ich hier eine Instanz gesetzt. Wenn es so ist würde ich den Plan über den Haufen werfen und bei einer Anbindung bleiben


    Man bin ich froh das es jetzt geht - hocke jetzt schon zwei Tage dran Letzlich bin ich aber froh, dass es so gelaufen ist, da ich extrem viel von Euch gelernt habe!

    Danke Euch mumpf Bonze @Sisamiwe

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    brunosa3

    Hast Du mehrere Anbindungen an den KNX-Bus da Du "instance: merry" konfiguriert hast.
    Wenn du eine oder mehrere Instanzen eines Plugin konfiguriert hast, musst Du bei der Item Attributen die Instanz mit angeben.

    Ich gehe aber davon aus, dass Du nur eine Verbindung zum KNX hast, daher nimm mal in der Plugin Konfig die Instanz weg und starte neu.

    Zur weiteren Eingrenzung kannst Du auch mal das Logging "hochdrehen". Nach dem Du noch am Anfang stehst (wie du schriebst), gehe ich davon aus, dass Du noch nicht arg viele Plugins nutzt. Die einfachste Möglichkeit, dass Loggin "hochzudrehen", also mehr Informationen zu bekommen, ist:
    AdminIF --> Logs --> Konfiguration

    Im Editor im Abschnitt "loggers" "plugins"

    Code:
        plugins:
            # Default logger for SmartHomeNG plugins
            handlers: [shng_details_file]
            level: WARNING
    den Level von "WARNING" auf "DEBUG" setzen.

    Rechts oben sichern clicken und neu starten. Nun schreiben alle Plugins im Log-Level DEBUG in die Logfiles. Dann kann man besser sehen, was das knx-Plugin macht.

    Probier mal.

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    Vielen Dank mumpf - ja ich spüre das wir auf dem richtigen Weg sind es zum Laufen zu kriegen

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Noch zum Hintergrund:

    shNG kommuniziert mit dem knxd, der wiederum mit dem KNX-Bus. knxtool gehört zum knxd und zeigt Dir nur, dass der knxd mit dem Bus kommunizieren kann. Da das klappt, sitzt das Problem bei der shNG <-> knxd Kommunikation.

    Mach es wie von Sisamiwe vorgeschlagen, dann findet man das Problem sicherlich bald.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • brunosa3
    antwortet
    Sisamiwe vielen Dank für den Tipp (Kannte das WebIf noch nicht ).

    Kann es leider nicht öffnen spricht wahrscheinlich wieder dafür, dass ich keine Verbindung herstellen kann.

    Also knxd funktioniert, da die mit knxtool auf den Bus senden kannst, richtig?
    Ja, knxtool funktioniert - ich sehe es auf dem Bus

    knx config im plugin.yaml

    knx_config.PNG

    Die Plugin Liste:


    plugin_liste.PNG

    Das KNX WebIF:

    knx_webif.PNG




    Einen Kommentar schreiben:

Lädt...
X