Ankündigung

Einklappen
Keine Ankündigung bisher.

Visu-Schnittstelle

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

  • Robert
    antwortet
    Das ist Sklavenarbeit - kann ich für alle "einfachen" widgets anfangen wenn ich "endlich" (nicht böse gemeint!!! ) meine dynamische Liste bekomme...

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Visu-Schnittstelle

    Zitat von Robert Beitrag anzeigen
    vielleicht gibt es die Möglichkeit, optionale Status-GADs einzuführen, die, wenn nicht angegeben, durch die Schalt-GADs ersetzt werden. Sowas könnte dann rückwärtskompatibel sein!?
    Ginge problemlos... wer machts?

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von 2ndsky Beitrag anzeigen
    Andersrum, wenn du die Lampe an nem KNX Taster ausmachen willst, der ne Status LED hat... da löst du es auch mit getrennten GAs.


    Bzgl. smartVISU: vielleicht gibt es die Möglichkeit, optionale Status-GADs einzuführen, die, wenn nicht angegeben, durch die Schalt-GADs ersetzt werden. Sowas könnte dann rückwärtskompatibel sein!?

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Visu-Schnittstelle

    Würde da auch eher weitere Widgets erstellen, die Status und Schaltbefehl getrennt haben, als zu versuchen, das mit einem Item zu erledigen. Oder einfach zusätzlich anzeigen, dass die Lampe derzeit gesperrt ist. Sonst schaltest du (oder jemand, der die Logik dahinter nicht kennt) und wunderst dich, warum das Item (die Lampe) den Status nicht wechselt. Übrigens kann das auch kein HS und Konsorten

    Andersrum, wenn du die Lampe an nem KNX Taster ausmachen willst, der ne Status LED hat... da löst du es auch mit getrennten GAs.

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von l0wside Beitrag anzeigen
    KNX sieht ja nicht umsonst Rückmeldungen auf dem Bus vor.
    Richtig. Aber wenn du das nutzen willst (und ein AUS auf einen entsprechend parametrierten Treppenhausautomaten macht ja nun wirklich nicht sooo viel Sinn) muss du eben wie auch bei der GA (sind ja eben zwei!) auch zwei Items anlegen - Befehl und Status.
    Hast du bei den KNX-GAs ja auch gemacht, sonst könntest du dass ja auch nicht unterscheiden. Auf dem KNX "wehrt" sich die Schalt-GA auch nicht und schickt ein "Neee, ich bin TRUE" zurück.

    Das führt übrigens in die Ewigkeit: Raffstore gesperrt, Fahrbefehl geht also ins leere. Da müssten jetzt alle! Fahr- und Positionsbefehle per "Readback" "geheilt" werden. Dann vielleicht doch lieber ein zweites Item was ggfl. sogar einen "Fehler" liefern kann wenn die Erwartung nicht eintrifft (also eine Inkonsistenz erkannt wird)!

    Der "Readback" muss überdies ggfl. zeitverzögert werden etc... Gibt es eine andere etablierte Logikengine (HS, OpenHAB oder so) die so etwas "heilt"?

    Grüße
    Robert

    ach so: In gewisser Weise gebe ich dir recht, die Quintessenz sollte aber meiner Meinung nach anders aussehen: Durchziehen des Konzepts von getrennten Befehl/Status und die Visu muss dass dann entsprechend darstellen, d.h. ggfl. bleibt der Button aus bzw. der Slider verharrt/spring zurück. Dafür müssten in der smartVISU z.B. die GADs aufgetrennt werden.

    Einen Kommentar schreiben:


  • l0wside
    antwortet
    Zitat von Robert Beitrag anzeigen
    Nur für mich kurz zur Sicherheit: Bei dem
    Code:
    > up keller.flur.leuchten.wand = false
    Licht bleibt an
    handelt es sich ja wohl nicht um ein solches Treppenhauslicht, oder?
    Hallo Robert,

    doch, dabei handelt es sich um eine solche Applikation. Ich sehe das aber nicht als missbräuchlich an - die KNX-Applikation hat ja schon ihren Sinn. Es kann viele Gründe geben, warum ein bestimmter Schaltbefehl eben nicht zum gewünschten Erfolg führt. KNX sieht ja nicht umsonst Rückmeldungen auf dem Bus vor.

    Ein Hilfsitem geht natürlich, aber das ist ja höchst unelegant. Dann müsste ich noch für weitere Leuchten Hilfsitems anlegen - beispielsweise ist die Terrassenleuchte gesperrt, wenn der Rolladen unten ist.

    Feature-Request: ein weiterer Parameter knx_enforce mit den möglichen Werten "cache" und "read". Ist er gesetzt, wird nach dem Setzen eines Items der tatsächliche Wert vom eibd abgefragt, je nach gesetztem Wert aus dem Cache oder vom Bus.

    Gruß,

    Max

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Robert,

    danke für den Lichtblick :-)

    Zitat von Robert Beitrag anzeigen
    Code:
    [leuchte_die_ärger_macht-item]
    enforce_updates = yes
    knx_dpt...
    knx_send = böse-GA-die-kein-Aus-akzeptiert
    knx_listen = gute-GA-die-tatsächlichen-Status-liefert
    
    [hilfsitem]
    eval = groupread(gute-GA-die-tatsächlichen-Status-liefert, cache=False)
    eval_trigger = leuchte_die_ärger_macht-item
    Ich denke das gibt eine Endlosschleife. Das enforce_updates kann weg.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von l0wside Beitrag anzeigen
    (z.B. habe ich nicht abschaltbare Treppenhauslichter)
    Nur für mich kurz zur Sicherheit: Bei dem
    Code:
    > up keller.flur.leuchten.wand = false
    Licht bleibt an
    handelt es sich ja wohl nicht um ein solches Treppenhauslicht, oder? Falls ja, ist das ja nun auch "missbräuchlich" und kann auch denke ich nie sinnvoll (außer mit einem weiteren Lesevorgang) erkannt werden. Nicht sh.py oder der KNX machen hier ja den Fehler, sondern "der Anwender", in dem er einen "nicht-erlaubten" Wert setzt.

    Vorschlag zur Lösung (falls obiges zutrifft - Pseudocode!):
    Code:
    [leuchte_die_ärger_macht-item]
    enforce_updates = yes
    knx_dpt...
    knx_send = böse-GA-die-kein-Aus-akzeptiert
    knx_listen = gute-GA-die-tatsächlichen-Status-liefert
    
    [hilfsitem]
    eval = groupread(gute-GA-die-tatsächlichen-Status-liefert, cache=False)
    eval_trigger = leuchte_die_ärger_macht-item
    evtl! funktioniert es sogar, die Hilfsitem-Einträge in das ursprüngliche Item auszulagern...

    Grüße
    Robert

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Max,

    ich sehe das Problem an dieser Stelle:
    Zitat von l0wside Beitrag anzeigen
    > up keller.flur.leuchten.wand = false
    Licht bleibt an
    Kannst Du bitte im KNX Plugin folgendes Attribute setzen 'busmonitor = True' und mir einen Debugoutput von SH.py zu dieser Aktion schicken?

    Welche KNX-Schnittstelle setzt Du ein? Welchen eibd, auf welcher Maschine?
    Startparmameter von eibd?

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • l0wside
    antwortet
    Zitat von mknx Beitrag anzeigen
    Wenn Du das verhalten ändern möchtest, so müsstes Du in im Visu-Plugin in der Methode update (bei mir Zeile 265) die Abfrage: "if self.addr != source:" entfernen.
    Hallo Marcus,

    sorry. Das Problem liegt wohl tiefer. Die Änderung am Visu-Plugin hat funktioniert, aber nicht das gewünschte Ergebnis erzielt. Der gleiche Effekt ergibt sich mit dem CLI.

    Problem anhand des Items:
    Code:
    [keller]
        [[flur]]
            [[[leuchten]]]
                [[[[wand]]]]
                    type = bool
                    knx_dpt = 1
                    knx_send = 1/0/11
                    knx_listen = 1/0/111
                    knx_init = 1/0/111
                    visu = yes
                    name = Leuchte Flur
    Telnet-Session mit dem CLI:
    Code:
    > ls keller.flur.leuchten
    Items:
    ======
    keller.flur.leuchten
    keller.flur.leuchten.wand = False
    > up keller.flur.leuchten.wand = true
    [B]Licht geht an[/B]
    > ls keller.flur.leuchten
    Items:
    ======
    keller.flur.leuchten
    keller.flur.leuchten.wand = True
    > up keller.flur.leuchten.wand = false
    [B]Licht bleibt an[/B]
    > ls keller.flur.leuchten
    Items:
    ======
    keller.flur.leuchten
    keller.flur.leuchten.wand = False
    Status auf dem Bus:
    Code:
    # groupreadresponse local:/tmp/eib 1/0/111
    Send request
    Read from 0.0.0
    Response from 1.1.202: 01
    Hier ist sh.py inkonsistent zum tatsächlichen Status - die Leuchte ist an, was ein explizites Abfragen auf dem Bus auch so bestätigt, aber sh.py nimmt das letzte bekannte Ereignis - und das ist das (wenn auch erfolglose) Kommando "Leuchte aus".

    Ich habe keine fixe Lösung zur Hand. Am ehesten fiele mir noch ein zusätzliches Attribut "force_listen" oder "force_cache" ein, das sh.py dazu zwingt, nach jeder Änderung den aktuellen Status vom eibd zu lesen. Das könnte aber vom Timing her kritisch werden.

    Max

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Max,

    Zitat von l0wside Beitrag anzeigen
    Lässt sich das Visu-Interface dazu überreden, nach dem Setzen eines Werts von der Visu aus den tatsächlichen Wert zurückzuliefern? Dann erledigt sich das Thema Konsistenz von selbst.
    abgesehen von dem Client der die Änderung des Items veranlasst hat, erhält jeder Client die Updates übermittelt. Wenn Du das verhalten ändern möchtest, so müsstes Du in im Visu-Plugin in der Methode update (bei mir Zeile 265) die Abfrage: "if self.addr != source:" entfernen.

    Ich habe das eingebaut, da es Probleme mit dem Slider gab. SH.py liefert 'alte' Werte an den aktiven Client und die Werte hüpfen hin und her.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • l0wside
    hat ein Thema erstellt Visu-Schnittstelle.

    Visu-Schnittstelle

    Hallo zusammen,

    angeregt von Will habe ich meine eigene Visu gestrickt, die nach etwas händischer Anpassung auch mit sh.py 0.9 noch zusammen läuft. Allerdings muss ich im Moment bei einer Umschaltung die neuen Werte als gegeben annehmen (d.h. bei ausgeschalteter Leuchte und Touch-Event ein "ein" an sh.py absetzen und das Icon auf "an" setzen). Das kann zu Inkonsistenzen führen (z.B. habe ich nicht abschaltbare Treppenhauslichter).

    Chrome liefert auf der Netzwerkschnittstelle Folgendes:
    Client -> Server {"cmd":"item","id":"keller.werkstatt.leuchten.wand ","val":"0"}
    Server -> Client {"items":[["keller.leuchten",false]],"cmd":"item"}
    Client -> Server {"cmd":"item","id":"keller.werkstatt.leuchten.wand ","val":"1"}
    Server -> Client {"items":[["keller.leuchten",true]],"cmd":"item"}

    keller.leuchten ist ein eigenes Item, das per Eval geändert wird, wenn sich keller.werkstatt.leuchten.wand ändert. Die Kommunikation funktioniert also prinzipiell wunderbar.

    Lässt sich das Visu-Interface dazu überreden, nach dem Setzen eines Werts von der Visu aus den tatsächlichen Wert zurückzuliefern? Dann erledigt sich das Thema Konsistenz von selbst.

    Max
Lädt...
X