Ankündigung

Einklappen
Keine Ankündigung bisher.

Node Red - Fensterkontakt Umsetzung

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

    Node Red - Fensterkontakt Umsetzung

    Hallo,
    ich versuche mich gerade an Node Red als Teil von Home Assistant. Bin aber noch nicht wirklich bewandert darin - vielleicht könnt ihr mir helfen.
    Ich habe Fensterkontakte würde gerne eine Info raus geben, welche Fenster offen sind.

    Ich würde gerne (im ersten Schritt) bei einer Statusänderung eines Fenster, die Stati der anderen Fenster abfragen und eine Meldung rausgeben ob Fenster offen oder geschlossen sind.

    Gibt es einen Note der bei einer Änderung eines Fensters, die anderen auch abfrägt. Die Meldung soll dann Fenster offen zurück geben, wenn ein oder mehrere Fenster offen sind. Fenster zu aber nur wenn alle geschlossen sind.

    Im zweiten Schritt wäre dann eine Ausgabe welche Fenster offen sind.

    Wäre cool wenn mir da jemand auf die Sprünge helfen könnte.

    Gruß
    Chris


    #2
    Wozu braucht man dazu NodeRed?

    Du solltest noch mal genauer beschreiben was die Ausgabe sein soll. Bilder Zahlen Text ne Ansage nur Binares ja/Nein.

    Deine unspezifischen Angaben zur Aussage lassen einem halt keine Logik designen die tun was du willst.
    ----------------------------------------------------------------------------------
    "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
    Albert Einstein

    Kommentar


      #3
      Zitat von fetze82 Beitrag anzeigen
      Gibt es einen Note der bei einer Änderung eines Fensters, die anderen auch abfrägt. Die Meldung soll dann Fenster offen zurück geben, wenn ein oder mehrere Fenster offen sind. Fenster zu aber nur wenn alle geschlossen sind.
      Aktiv Abfragen für sowas ist eher unüblich in KNX. Wenn die Fenster an Binäreingängen hängen, dann schick einfach den neuen Status bei jeder Änderung. In HA kannst du für jedes Fenster einen `binary_sensor` (device_class: window) erstellen. https://www.home-assistant.io/integr...#binary-sensor
      Wenn du alle Fenster zu einer Gruppe zusammenfasst, hast du auch die Info ob eines offen, oder alle geschlossen sind. https://www.home-assistant.io/integrations/group/
      Is halt ohne NodeRed.

      Kommentar


        #4
        Hallo,
        danke für eure Antworten.
        ok das stimmt, meine Angaben waren nicht sonderlich präzise.

        Wie gesagt bin ich noch nicht besonders erfahren mit Home Assistant oder Node Red. Aus diesem Grund schaue ich gerade wie ich was am besten wo umsetzen kann. In HA wie auch in NR habe ich ein paar einfache Automatisierungen umgesetzt.
        Akutell kommt es mir so vor, wie wenn NR bei größeren Automatisierungen übersichtich ist. Ob ich hier richtig liege, weiß ich nicht.

        Ich habe jeden Fensterkontakt an einem Binäreingang am KNX Bus hängen. Die Einzelnen Binäreingänge bekomme ich in HA auch angezeigt und kann den Status in NR abfragen. Diese Vorraussetzungen sollten also gegeben sein.

        Jetzt nochmal zu meiner Idee.
        Ich hätte in der Endausbaustufe gerne einen String, der mir Ausgibt welche Fenster offen sind. Wie hier eine mögliche Umsetzung aussieht, ist mir noch nicht klar. Aus diesem Grund, denke ich, es ist Sonnvoll die Aufgabe zu unterteilen und die Lernkurfe mit Zwischenzielen flacher zu gestalten.

        Step1:
        Eine Meldung ob irgendein Fenster offen ist.
        Meldung: "Fenster offen" oder "Fenster geschlossen"

        In HA habe ich hierzu die Helfer gefunden. Dort kann ich einen Anlegen und alle Fensterkontakte einfügen. Dies funktioniert recht einfach.
        Ich dachte, solch eine Funktion müsste in NR ja auch recht einfach um zu setzen sein. Gefunden habe ich hierzu allerdings nichts. Ich würde gerne wissen wie man solch eine Aufgabe in NR umsetzt um NR besser verstehen zu können.

        Step2:
        Eine Meldung welches Fenster offen ist.
        Meldung: "Alle Fenster geschlossen" oder z.B. "Fenster Wozi, Bad, KiZi offen"

        Hierzu müsste ein Trigger kommen, sobald sich ein Zustand eines beliebigen Fensters ändert.
        Dieser Trigger müsste dann die Zustände der Fenster abfragen. Von den Offenen Fenstern dann eine Rückmeldung kommen um einen String zusammen zu bauen.

        Für diese Umsetzung fehlt mir eine Idee wie man dies in HA oder auch in NR umsetzen könnte.

        Grüße und danke schonmal für eure Anregungen und Hilfe,
        Chris



        Kommentar


          #5
          Zitat von fetze82 Beitrag anzeigen
          Step1:
          Eine Meldung ob irgendein Fenster offen ist.
          Meldung: "Fenster offen" oder "Fenster geschlossen"
          Das ist je nach Polarität ein UND oder ein ODER über alle einzelnen Fenster. Sowas würde ich möglichst nah am oder direkt im KNX machen. Gern auch kaskadiert mit einer Zwischenstufe je Etage. Ergibt im Ziel entsprechende binäre Objekte.

          Zitat von fetze82 Beitrag anzeigen
          Step2:
          Eine Meldung welches Fenster offen ist.
          Meldung: "Alle Fenster geschlossen" oder z.B. "Fenster Wozi, Bad, KiZi offen"
          Das ist ein Mapping / Verketten der binären Zustände.

          Also die Ergebnisse aus Step1 werden in Taxt Alles Auf oder Alles Zu oder leerer String gemappt. Das gleiche Mapping für alle Einzelmeldungen. Immer ein Mapping binäres offen zu Text binäres zu auf leeren String.
          Step 2b ist dann diese Textvariablen einfach verketten in eine Gesamtnachricht.

          Das mal so von der Struktur her. einen fertigen Baustein findet man da in NR nur durch Zufall, sonst klickert man sich das mit den Standard nodes selbst zusammen und wenn man es etwas kompakter haben will, baut man es sich danach ggf in JavaScript in einen function-Node.

          UND ODER Nodes gibt es ja im NR und Mappings zu Text sind auch die Standard Nodes
          ----------------------------------------------------------------------------------
          "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
          Albert Einstein

          Kommentar


            #6
            Zitat von fetze82 Beitrag anzeigen
            Die Meldung soll dann Fenster offen zurück geben, wenn ein oder mehrere Fenster offen sind. Fenster zu aber nur wenn alle geschlossen sind.
            Das würde ich wenn möglich nativ in KNX lösen. Hast du denn noch irgendwelche Geräte die externe GAs per Logik auswerten können?
            Sind die Fenster auf separaten BEs oder ist das ein Geräte? Evtl haben die BEs Logik an Board.

            Ich mache das so ähnlich:
            Eine LED-Anzeige neben der Türe zeigt mit, ob die Fenster je Stockwerk geschlossen sind (Nativ KNX).
            Eine SONOS-Box sagt mir beim Verlassen des Hauses bei Bedarf welches Fenster offen ist.
            Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
            KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

            Kommentar


              #7
              Guten Abend zusammen,
              Danke euch für eure Antworten.
              Die Fensterkontakte, aller drei Stockwerke, liegen alle auf einem 16fach Binäreingang von MDT. Die Fensterkontakte kann ich da ja leider nicht auf 3 Gruppen (EG, OG, DG) aufteilen.

              Im KNX habe ich keinen Logikbaustein oder ähnliches. Von dem her werde ich es mit der aktuellen Hardware nicht direkt im KNX lösen können.
              Gruß
              Chris​

              Kommentar


                #8
                Der MDT hat doch diverse Logikgatter. Damit hab ich das auch umgesetzt.
                Alle Kontakte OG auf ein UND, alle vom EG auf ein UND und alle aus dem Keller auf ein UND

                Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
                KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

                Kommentar


                  #9
                  Hallo Olli,
                  das schaue ich mir heute abend direkt an.

                  kannst du mir noch zeigen, wie du das mit der Sonos Box und der Ausgabe der entsprechenden Fenster gemacht hast?
                  Gruß
                  Chris

                  Kommentar


                    #10
                    Ein Schritt nach dem anderen!

                    Ich nutze den Node tts-Ultimate.
                    Wenn wir das Haus verlassen, wird ein Taster gedrückt. Der triggert eine FunctionNode. Wenn alle Fenster zu sind kommt ein kurzer Bestätigungston. Sind ein oder mehr Fenster offen, kommt ein Fehlerton und anschließend eine Durchsage „Fenster offen in“ gefolgt von einer Liste der offenen Fenster.

                    „Möööp. Fenster offen in Bad, Schlafzimmer“


                    So ähnlich könnte das aussehen:

                    NodeRed Message.png

                    Hier noch der Code der function node:
                    Code:
                    var message;
                    
                    message = "";
                    
                    if(flow.get("F_Gäste") === false){
                        message = "Gästezimmer, "
                    }
                    
                    if(flow.get("F_WC") === false){
                        message = message + "WC, "
                    }
                    
                    if(flow.get("F_Wohnen") === false){
                        message = message + "Wohnzimmer, "
                    }
                    
                    if(flow.get("F_Küche") === false){
                        message = message + "Küche, "
                    }
                    
                    let length = message.length;
                    if(length > 0){
                        message = "Fenster offen in " + message;
                        msg.payload = message;
                        return [msg,null];
                    }else{
                        message = "Alles zu";
                        msg.payload = message;
                        return [null,msg];
                    }​
                    Zuletzt geändert von TheOlli; 05.10.2023, 21:20.
                    Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
                    KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

                    Kommentar


                      #11
                      Hallo Olli,
                      die Etagenweiße Verknüpfung im BE direkt in KNX hat natürlich funktioniert. Danke schonmal dafür!

                      Vielen dank für deine Ausführung. Das werde ich mir auf jeden fall mal anschauen. Dann habe ich am WE was zum spielen!

                      Wenn ich nicht so viel Spaß dabei hätte, würde ich mich über die vielen grauen Haare ärgern die ich dabei bekomme
                      Viele Grüße
                      Chris

                      Kommentar


                        #12
                        Hallo Olli,

                        danke, ich bin jetzt ein großer Schritt weiter.

                        Gibt es einen "Vorteil", wenn man die Statis der KNX Objekte über KNX Ultimate - KNX Device abfrägt, oder über die Home Assistant - Entitäten?

                        Gruß
                        Chris

                        Kommentar


                          #13
                          Ich nutze HA nicht. Da kann ich dir also nicht helfen.
                          Aktuell nutze ich NodeRed als Erweiterung zum IO-Broker. Das meiste läuft direkt in NR, daher eben KNX Ultimate
                          Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
                          KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

                          Kommentar


                            #14
                            Ich würde das Thema nochmal gern aufgreifen,
                            vorab alle Signale sind native über KNX mit einem Logikgatter verknüpft
                            und es erfolgt schon eine Ausgabe Fenster offen oder geschlossen

                            Da ich ja gern sehen möchte, welche Fenster geöffnet sind.
                            Habe ich es mit Node red einen flow gebaut, der eine 16.000 Textausgabe hat.
                            Nun kommt meine Frage
                            Wenn nur ein Fenster geöffnet wurde, ist alles klar und die Ausgabe erzeugt den Text
                            sobald ich 2 offene Fenster habe, würde ich gern, dass der Text im 3-Sekunden-Takt wechselt
                            Wie stelle ich das am besten an ??
                            Angehängte Dateien

                            Kommentar


                              #15
                              Hab ich in HA als Template Sensor:

                              HTML-Code:
                              Datei: template.yaml
                              
                              - sensor:
                                  - name: offene Fenster und Türen
                                    unique_id: "offene_fenster_tueren"
                                    state: "{{ expand('binary_sensor.kontakte_haus') | selectattr('state','eq','on') | list | count }}"
                                    attributes:
                                      Sensor: >-
                                        {% set entities = expand('binary_sensor.kontakte_haus') | selectattr('state','eq','on') | map(attribute='name') | list | join(', ')  %}
                                        {%- for s in entities -%}
                                        {{ s }}
                                        {%- endfor %}​
                              Der Sensor zeigt als Status die anzahl der offenen Fenster und als Atribut einen zusammengefassten String mit den offenen Fenstern.
                              Die Eingangsentität ist eine Gruppe, welche die gewüschten Fenster und Türen enthält.
                              Angehängte Dateien

                              Kommentar

                              Lädt...
                              X