Ankündigung

Einklappen
Keine Ankündigung bisher.

Viega Wannenfüllamatur Tro E3

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

    #46
    Hatte heute morgen mal wieder ein bischen Zeit, hier mal ein NodeRed "Proof Of Concept":

    In den beiden "set POST" und "set GET" function Nodes die IP Adresse anpassen sowie die Wassermenge und die Temperatur auch in der "set POST" function Node
    Über die Inject Node starten. (vorher schauen, das nichts ungewolltes in der Wanne liegt 😉)

    Es gibt ja auch noch einige andere API Calls wie z.B. Stöpsel hoch und runter ....

    Ich denke das ist schon mal ein Start.

    Flow zum (copy/paste) Importieren
    Code:
    [{"id":"c5d1f9c3f2a0fd4e","type":"tab","label":"Badewanne","disabled":false,"info":""},{"id":"455d5e7581b291c6","type":"function","z":"c5d1f9c3f2a0fd4e","name":"set POST","func":"msg.headers = {}\nmsg.method = \"POST\"\nmsg.url = \"http://192.168.2.191/api/tlc/1/bathtub-fill/\"\nmsg.headers = {\n'content-type':'application/x-www-form-urlencoded'\n}\n\nmsg.payload = {\n\"temperature\":\"23.5\",\n\"amount\":\"10\"\n};\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":140,"wires":[["72db3c8649452e12"]]},{"id":"28eab93fbb08d4c7","type":"inject","z":"c5d1f9c3f2a0fd4e","name":"","props":[],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","x":130,"y":140,"wires":[["455d5e7581b291c6"]]},{"id":"72db3c8649452e12","type":"http request","z":"c5d1f9c3f2a0fd4e","name":"http bathtub-fill","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":580,"y":140,"wires":[["72d3d740dc44c96c"]]},{"id":"e94fcc1bc3c96c72","type":"debug","z":"c5d1f9c3f2a0fd4e","name":"Debug 1","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":980,"y":140,"wires":[]},{"id":"72d3d740dc44c96c","type":"function","z":"c5d1f9c3f2a0fd4e","name":"check http status","func":"\nif (msg.statusCode == \"200\")\n{\n    return msg;\n}\nelse\n{\n    return null;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":140,"wires":[["e94fcc1bc3c96c72","c05439350159753f"]]},{"id":"c05439350159753f","type":"function","z":"c5d1f9c3f2a0fd4e","name":"set GET","func":"msg.headers = {}\nmsg.method = \"GET\"\nmsg.url = \"http://192.168.2.191/api/tlc/1/bathtub-fill/\"\nmsg.headers = {\n'content-type':'application/json'\n}\nmsg.payload = {};\n\nreturn msg\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":240,"wires":[["598da44473b39fa5"]]},{"id":"598da44473b39fa5","type":"http request","z":"c5d1f9c3f2a0fd4e","name":"http bathtub-fill","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":580,"y":240,"wires":[["9eb4555bab9005cd"]]},{"id":"9eb4555bab9005cd","type":"function","z":"c5d1f9c3f2a0fd4e","name":"check http status","func":"\nif (msg.statusCode == \"200\")\n{\n    return msg;\n}\nelse\n{\n    return null;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":240,"wires":[["f1a738747e81dfb9"]]},{"id":"0cff373ba956e141","type":"switch","z":"c5d1f9c3f2a0fd4e","name":"branch on state value","property":"payload.state","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"gte","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":4,"x":1220,"y":240,"wires":[[],["dfbdee82d0e22256"],[],[]]},{"id":"f1a738747e81dfb9","type":"json","z":"c5d1f9c3f2a0fd4e","name":"JSON to JS","property":"payload","action":"","pretty":false,"x":1010,"y":240,"wires":[["0cff373ba956e141","72cab77c33e6d287"]]},{"id":"dfbdee82d0e22256","type":"trigger","z":"c5d1f9c3f2a0fd4e","name":"","op1":"","op2":"1","op1type":"nul","op2type":"str","duration":"4","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":1430,"y":240,"wires":[["c05439350159753f"]]},{"id":"72cab77c33e6d287","type":"debug","z":"c5d1f9c3f2a0fd4e","name":"Debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1180,"y":320,"wires":[]}]
    Zuletzt geändert von Techi; 10.11.2022, 19:39.

    Kommentar


      #47
      Hier hab ich den Test noch um Stöpsel AUF und Stöpsel ZU erweitert.

      Flow zum (copy/paste) Importieren
      Code:
      [{"id":"c5d1f9c3f2a0fd4e","type":"tab","label":"Badewanne","disabled":false,"info":""},{"id":"455d5e7581b291c6","type":"function","z":"c5d1f9c3f2a0fd4e","name":"set POST fill","func":"msg.headers = {}\nmsg.method = \"POST\"\nmsg.url = \"http://192.168.2.191/api/tlc/1/bathtub-fill/\"\nmsg.headers = {\n'content-type':'application/x-www-form-urlencoded'\n}\n\nmsg.payload = {\n\"temperature\":\"23.5\",\n\"amount\":\"10\"\n};\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":140,"wires":[["72db3c8649452e12"]]},{"id":"28eab93fbb08d4c7","type":"inject","z":"c5d1f9c3f2a0fd4e","name":"","props":[],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","x":130,"y":140,"wires":[["455d5e7581b291c6"]]},{"id":"72db3c8649452e12","type":"http request","z":"c5d1f9c3f2a0fd4e","name":"http bathtub-fill","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":580,"y":140,"wires":[["72d3d740dc44c96c"]]},{"id":"e94fcc1bc3c96c72","type":"debug","z":"c5d1f9c3f2a0fd4e","name":"Debug 1","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":980,"y":140,"wires":[]},{"id":"72d3d740dc44c96c","type":"function","z":"c5d1f9c3f2a0fd4e","name":"check http status","func":"\nif (msg.statusCode == \"200\")\n{\n    return msg;\n}\nelse\n{\n    return null;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":140,"wires":[["e94fcc1bc3c96c72","c05439350159753f"]]},{"id":"c05439350159753f","type":"function","z":"c5d1f9c3f2a0fd4e","name":"set GET fill","func":"msg.headers = {}\nmsg.method = \"GET\"\nmsg.url = \"http://192.168.2.191/api/tlc/1/bathtub-fill/\"\nmsg.headers = {\n'content-type':'application/json'\n}\nmsg.payload = {};\n\nreturn msg\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":240,"wires":[["598da44473b39fa5"]]},{"id":"598da44473b39fa5","type":"http request","z":"c5d1f9c3f2a0fd4e","name":"http bathtub-fill","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":580,"y":240,"wires":[["9eb4555bab9005cd"]]},{"id":"9eb4555bab9005cd","type":"function","z":"c5d1f9c3f2a0fd4e","name":"check http status","func":"\nif (msg.statusCode == \"200\")\n{\n    return msg;\n}\nelse\n{\n    return null;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":240,"wires":[["f1a738747e81dfb9"]]},{"id":"0cff373ba956e141","type":"switch","z":"c5d1f9c3f2a0fd4e","name":"branch on state value","property":"payload.state","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"gte","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":4,"x":1220,"y":240,"wires":[[],["dfbdee82d0e22256"],[],[]]},{"id":"f1a738747e81dfb9","type":"json","z":"c5d1f9c3f2a0fd4e","name":"JSON to JS","property":"payload","action":"","pretty":false,"x":1010,"y":240,"wires":[["0cff373ba956e141","72cab77c33e6d287"]]},{"id":"dfbdee82d0e22256","type":"trigger","z":"c5d1f9c3f2a0fd4e","name":"","op1":"","op2":"1","op1type":"nul","op2type":"str","duration":"4","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":1430,"y":240,"wires":[["c05439350159753f"]]},{"id":"72cab77c33e6d287","type":"debug","z":"c5d1f9c3f2a0fd4e","name":"Debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1180,"y":320,"wires":[]},{"id":"243b2d20c11c76ad","type":"function","z":"c5d1f9c3f2a0fd4e","name":"set POST popup","func":"msg.headers = {}\nmsg.method = \"POST\"\nmsg.url = \"http://192.168.2.191/api/tlc/1/popup/\"\nmsg.headers = {\n'content-type':'application/x-www-form-urlencoded'\n}\n\nmsg.payload = {\n\"state\":\"1\"\n};\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":460,"wires":[["ae5f2b332c3381a0"]]},{"id":"752ac0cbfde2ab3c","type":"inject","z":"c5d1f9c3f2a0fd4e","name":"popup on","props":[],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","x":140,"y":460,"wires":[["243b2d20c11c76ad"]]},{"id":"ae5f2b332c3381a0","type":"http request","z":"c5d1f9c3f2a0fd4e","name":"http bathtub-fill","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":580,"y":460,"wires":[["9a5eeab75825faf8"]]},{"id":"99423ed57183d260","type":"debug","z":"c5d1f9c3f2a0fd4e","name":"Debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":980,"y":460,"wires":[]},{"id":"9a5eeab75825faf8","type":"function","z":"c5d1f9c3f2a0fd4e","name":"check http status","func":"\nif (msg.statusCode == \"200\")\n{\n    return msg;\n}\nelse\n{\n    return null;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":460,"wires":[["99423ed57183d260"]]},{"id":"b5dc614aa35b580b","type":"inject","z":"c5d1f9c3f2a0fd4e","name":"popup off","props":[],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","x":140,"y":520,"wires":[["0d8d08a8bb5c89ba"]]},{"id":"0d8d08a8bb5c89ba","type":"function","z":"c5d1f9c3f2a0fd4e","name":"set POST popup","func":"msg.headers = {}\nmsg.method = \"POST\"\nmsg.url = \"http://192.168.2.191/api/tlc/1/popup/\"\nmsg.headers = {\n'content-type':'application/x-www-form-urlencoded'\n}\n\nmsg.payload = {\n\"state\":\"0\"\n};\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":520,"wires":[["ae5f2b332c3381a0"]]}]
      Unbenannt.jpg
      Zuletzt geändert von Techi; 10.11.2022, 19:42.

      Kommentar


        #48
        Vielen Dank!!! Werde das gleich morgen mal probieren! Sieht ja schon mal vielversprechend aus…

        VG
        Thomas

        Kommentar


          #49
          DerStandart
          Wir brauchen das in IPS

          Kommentar


            #50
            Burgerking
            in was wird in IPS Code geschrieben ? (PHP ?)
            Kannst du nicht irgendwo ein NodeRed ans laufen bekommen (Docker Container) dann könntest du per KNX von IPS darauf zugreifen ?
            Ich bin auch kein Fan von Heterogenen Systemen aber vorerst ist NodeRed halt die vorläufig schellste und einfachste Möglichkeit. Eine finale Lösung ist das für mich auch nicht, am Ende soll es bei mir ein kleines Hardwaregateway werden welches auf einem Microcontroller (im Hutschienegehäuse) und ohne Betriebssystem läuft.

            @Alle
            Wie genau soll die Logik hinter dem ganzen aussehen, also wie soll das ganze von KNX aus steuerbarbar sein.

            Also ich hätte nun mal für eine erste Implementierung folgendes gemacht:
            -Temperatur GA
            -Füllstand GA
            -Start GA (Schalt GA welche auf Änderung von 0 auf 1 geprüft wird) zum Starten des Einlaufvorgangs
            -Stop GA (Schalt GA welche auf Änderung von 0 auf 1 geprüft wird) zum Anhalten des Einlaufvorgangs
            -GA für Stöpsel
            -Status GA welche den Zustand des Befüllvorgangs zurück liefert.

            Oder sollte aus Start GA und Stop GA ein GA werden, welcher nicht als Impuls arbeitet sondern als "Pegel" und dann selbständig zurück gesetzt wird wenn Füllen beendet wird ?

            Es kommen dann noch andere Funktionen hinzu, wie das einfach Starten und Stoppen des Zulaufs mit definierter Temperatur.
            Was wohl leider nicht geht und da hatte ich echt Hoffnung, war das Umschalten von Einlauf und Brause :-(


            Andere Ideen ?
            Zuletzt geändert von Techi; 11.11.2022, 07:42.

            Kommentar


              #51
              Toll Techi!!! Danke.

              Vielleicht könnte man noch die Speicherplätze irgendwie belegen. Das ist nämlich sehr mühsam...

              IPS ist mittlerweile sehr mächtig geworden und läuft bei mir auf einem Pi4 (PHP, MQTT, usw..) und zusätzlich habe ich eine Synology NAS

              lg

              Kommentar


                #52
                Zitat von Burgerking Beitrag anzeigen
                ... läuft bei mir auf einem Pi4 (PHP, MQTT, usw..) und zusätzlich habe ich eine Synology NAS...
                Auf beiden sollte NodeRed so nebenher keine Problem darstellen.
                Fürs Synology NAS kann man das sicher als fertigen (Docker) Container bekommen.


                Kommentar


                  #53
                  Zitat von Burgerking Beitrag anzeigen
                  ...Vielleicht könnte man noch die Speicherplätze irgendwie belegen. Das ist nämlich sehr mühsam...
                  Man kann davon ausgehen, dass nur Funktionen zur Verfügung stehen welche auch über die Webseite des Interfaces vorhanden sind.
                  Dort gibt es nur das Auslösen eines Speicherplatzes, aber keine Einstell- oder Veränderungsmöglichkeit (zumindest nicht bei mir).
                  Habe mir auch die JS Sourcen im Quelltext der Webseite des Trios angeschaut, auch da finde ich erst mal nichts zum setzen der Speicherplätze.
                  Kann also sein, dass so eine Funktion nicht möglich ist.

                  Kommentar


                    #54
                    Gerade den Flow probiert - funktioniert bestens :-)))

                    Vielen Dank Techi!
                    Die Speicherplätze jetzt noch direkt anzusprechen wäre natürlich mega!
                    Leider bleibt ja bei Ansprache über API das Display aus. Habt Ihr eine Idee wie man das umgehen könnte?

                    Kommentar


                      #55
                      Zitat von Burgerking Beitrag anzeigen
                      Wir brauchen das in IPS
                      Ich hab die einfachsten Dingen schon realisiert. Allerdings ist der Befüllvorgang immer nach paar Sekunden abgebrochen. Es steht auch nirgendwo, dass währenddessen immer wieder eine Abfrage geschickt werden muss, damit das nicht abbricht...

                      Kommentar


                        #56
                        Wäre es noch möglich per Nodered auf die Brause umzuschalten? Ich finde dieses Kommando nirgends…

                        Kommentar

                        Lädt...
                        X