Ankündigung

Einklappen
Keine Ankündigung bisher.

Kombinieren von Schalt- und Statusitem

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

    Kombinieren von Schalt- und Statusitem

    Moin zusammen,

    im develop branch auf github sind jetzt neue Treiber für smarthomeNG und eibd/knxd. Die Treiber ermöglichen eine Kombination von Status- und Schaltitems durch einen Doppelpunkt, also in der Form "item_status:item_control". Der Doppelpunkt wurde als Trennzeichen gewählt, weil dieser in smarthomeNG für die YAML-Syntax reserviert ist und somit im item-Namen nicht auftreten darf.

    Findet smartVISU solch ein item, werden wie üblich die Updates für "item_status" beim Backend abonniert, während Schaltbefehle an "item_control" gesendet werden. Das item wird in widget.buffer mit vollem Namen abgespeichert und auch so an die jeweiligen Widgets übergeben. Treten item_status oder item_control in der Seite mehrfach auf, werden diese separat gehalten, aber immer gemeinsam aktualisiert. Man kann also z.B. einen basic.stateswitch mit einem kombinierten item "bath.light.status:bath.light.switch" parametrieren und gleichzeitig im Raum-Menü ein basic.symbol mit "bath.light.status", wie das viele von Euch ja implementiert haben.

    Die Kombination von Status- und Schaltitem ist dann sinnvoll, wenn man nicht davon ausgehen kann, dass das reguläre item nach einem Schaltvorgang immer den korrekten Zustand rückmeldet - beispielsweise wenn ein Aktor gesperrt werden kann oder wenn der Schaltvorgang längere Zeit dauert (z.B. Anfahren einer Rolladenposition). So meldet smarthomeNG z.B. die Abarbeitung eines Kommandos per item update zurück, ohne den Erfolg geprüft zu haben.

    Damit dies funktioniert, muss in der Konfiguration die Option „Item Bestätigung“ aktiviert sein, damit der Treiber auf die Antwort des Backends wartet, bevor er das Item aktualisiert.

    Das neue Format ist optional. Wer dies nicht benötigt, muss an seiner Installation nichst ändern.

    Danke an Onkelandy fürs erste Testen. Weitere Tester sind immer willkommen!

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 25.04.2024, 07:43. Grund: Option „item Bestätigung“ ergänzt

    #2
    Hallo,

    bei meiner Lösungssuche bin ich auf diesen Beitrag gestoßen.
    Ich verwende SV mit iobroker. Die Wärmepumpe steuere ich über mqtt an. Darüber kann ich mit einem basic.stateswitch einfach einen Wert über mqtt an die Wärmepumpe senden. Funktioniert soweit.
    Die tatsächlich an der Wärmepumpe eingestellten Werte werden aber über anderen mqtt-topics zurückgesendet. Es gibt, wie bei KNX, quasi Schreib- und Leseobjekte.
    Bei KNX muss man dazu die Gruppenadressen verknüpfen. Gibt es eine ähnliche Möglichkeit auch bei nicht-KNX?

    An dieser Stelle fiel mir hier die Kombination aus "status:switch" am basic.stateswitch auf. Die Lösung schien mir für meine Anforderung passend, scheint in meinem Praxistest aber nicht zu funktionieren.
    Bzw.: muss ich dafür noch etwas gesondert installieren? Oder ist das bereits in einer produktiven Version umgesetzt?

    Viele Grüße

    Kommentar


      #3
      Eigentlich würde ich erwarten, dass das Backend-System die Verknüpfung zwischen Schreib- und Leseobjekt herstellt, so dass ein item immer den genauen Zustand des zugehörigen Aktors/Geräts am Subsystem repräsentiert. Das in der Visu zu machen, halte ich für eine Krücke. Wenn Du eine Chance hast, dies innerhalb von ioBroker zu realisieren, ist das garantiert die bessere Lösung.

      Da ich nicht weiß, welche Systeme das leisten, habe ich die Verknüpfung in den Treibern von den beiden Systemen implementiert, die ich kenne und selbst testen kann: knxd/eibd und smarthomeNG. Im ioBroker-Treiber fehlt das noch. Deshalb hat das bei Deinen Tests nicht funktioniert .

      Wenn Du bereit bist zu testen und ggfls. kleine Codeänderungen selbst zu machen, kann ich die Grundfunktion relativ schnell in den Treiber übertragen.

      Gruß
      Wolfram
      Zuletzt geändert von wvhn; 31.10.2023, 09:23.

      Kommentar


        #4
        Hier mal ein erster Aufschlag. Die Datei muss in den Ordner ./driver kopiert und die Endung von ".txt" in ".js" geändert werden.
        In der Konfiguration kann man den Treiber dann als "ioBroker new" auswählen.

        Gruß
        Wolfram
        Angehängte Dateien

        Kommentar


          #5
          Vielen Dank, ich werde nachher mal testen.

          Kommentar


            #6
            Ich habe heute testen können. Dabei ist mir aufgefallen, dass für meine Belange "basic.select" passender wäre.
            Ich habe die neue js-Datei in den driver-Ordner kopiert und die Konfiguration geändert.
            In Smartvisu habe ich den basic.select dann wie folgt geschrieben:
            Code:
            {{ basic.stateswitch('', 'mqtt.0.panasonic_heat_pump.main.Quiet_Mode_Level:mqtt.0.panasonic_heat_pump.commands.SetQuietMode', '', 0, '', '0') }}
            Leider kann ich dann nicht schalten.
            Zuletzt geändert von YellowFlash; 01.11.2023, 21:57.

            Kommentar


              #7
              Leider ist mir in der Routine io.write eine Änderung durchgegangen. Die habe ich jetzt in der Datei oben ergänzt. Ich hoffe, damit klappt es dann.

              Gruß
              Wolfram

              Kommentar


                #8
                Vielen Dank, nun funktioniert es wie erwartet.
                Nimmst Du die geänderte iobroker-Datei mit in das nächste Release?

                Kommentar


                  #9
                  Ja. Das mache ich.

                  Allerdings fehlen noch weitere Features, wie das Canceln und Neuabonnieren einzelner Serien, damit das neue Widget plot.timeshift funktioniert. Hier brauche ich definitiv Mithilfe von ioBroker Experten.

                  Gruß
                  Wolfram

                  Kommentar


                    #10
                    YellowFlash
                    wegen eines Versionskonflikts musste ich den Treiber leider nochmal ändern. Könntest Du die Datei im Anhang bitte noch einmal testen?

                    Danke und Gruß
                    Wolfram
                    Angehängte Dateien

                    Kommentar


                      #11
                      Zitat von wvhn Beitrag anzeigen
                      Könntest Du die Datei im Anhang bitte noch einmal testen?
                      Habe ich gemacht, der erste Test sieht erfolgreich aus.

                      Zitat von wvhn Beitrag anzeigen
                      Hier brauche ich definitiv Mithilfe von ioBroker Experten.
                      Ob ich Experte in deinem Sinne bin, kann ich schwer sagen. Ich kenne mich in iobroker von der Anwendung her recht gut aus. Wenn es um Quelltext o.ä. geht, bin ich leider keine große Hilfe.
                      Wenn Du also Systemwissen benötigst, will ich gerne versuchen zu unterstützen.

                      Kommentar


                        #12
                        Cool. Danke. Ich melde mich.

                        Kommentar

                        Lädt...
                        X