Node Red - ich raff's einfach nicht...

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Clubsport
    MS Profi
    • 11.01.2018
    • 602

    #1

    Node Red - ich raff's einfach nicht...

    Also eigentlich hab ich ja gedacht, ich wäre nicht ganz sooooo dämlich....
    Aber: Ich komme mit NodeRed einfach nicht klar.

    Ich möchte gerne den json-String, den mir meine Xiaomi-Sensoren per UDP verschicken, anders sortiert haben.... Und zwar möchte ich die "sid" ganz nach vorne haben! Aktuell sieht das so aus:

    ​​​​​​[CODE]​"{
    "voltage":2815,
    "temperature":22.2,
    "humidity":41,
    "pressure":null,
    "time":1584214938696,
    "device":"158 d00020f4e8e",
    "sid":"158d00020f4e8e",
    "model":"sensor_ht"}"
    /CODE]

    Ich weiß zwar nicht welcher %&/"?ßß"**# sich diese Sortierung ausgedacht hat, aber naja....
    Ich würde jetzt gerne mit dem "sort"-Baustein folgendes machen:

    [CODE]{
    "sid": sid,
    "voltage": voltage,
    "temperature": temperature,
    "humidity": humidity
    }/CODE]

    Im Test haut das auch wunderbar hin, nur: wenn ich mit dem "Debug"-Baustein am Ausgang vom "sort" das Ergebnis überprüfen will, kommt da NULL raus...
    Wo liegt mein Fehler???

    Genervte Grüße,

    Martin
  • AlexAn
    Lebende Foren Legende
    • 25.08.2015
    • 4323

    #2
    Warum möchtest du das sortieren?
    Den Wert holst du per Befehllserkennung raus aus dem String egal wo er steht!
    Das Problem wird eher die Befehlserkennung selber sein bei diesem Text der "SID" bzw. die Weiterverarbeitung in der Lox selber aber bei einem Sensor wäre das auch noch egal.
    Falls du bei UDP bleiben möchtest dann pro Sensor ein Port

    Lösung per MQTT:
    da machst du dir das Topic zum jeweiligen Sensor und du hast alle Werte wie du sie brauchst

    Sonst sag uns etwas genauer was du vorhast und mach ein paar Shot´s dazu!
    Zuletzt geändert von AlexAn; 15.03.2020, 06:07.
    Grüße Alex

    Kommentar

    • Clubsport
      MS Profi
      • 11.01.2018
      • 602

      #3
      Ich habe bereits all mein Xiaomi-Equipment eingebunden, und zwar mit dieser Lösung:

      https://www.loxforum.com/forum/faqs-...xone-einbinden

      Allerdings läuft das Python-Skript auf meinem Mac Mini 24/7, weshalb ich erst versucht hatte es auf meinen Raspi umzuziehen, woran ich aber gescheitert bin.
      Nun deshalb jetzt der Versuch per Docker und Node Red.
      Ich würde den Umzug gerne bewerkstelligen, OHNE alle Sensoren neu anlegen zu müssen...

      Das Skript übermittelt die Werte per UDP (jeden Wert als eine Nachricht, aber alle an einen Port) dankenswerterweise bereits in sortierter Reihenfolge, beispielsweise:

      "sensor_ht 158d0001f57dd1 temperature 22.2"

      und ich nutze dann zur Befehlserkennung

      "sensor_ht 158d0001f57dd1 temperature \v"

      Wie du schon richtig erkannt hast ist mein Problem eine Mischung aus Befehlserkennung und Aufbau der o.g. Payload.
      Auch mit MQTT bin ich nicht weiter gekommen, da ich dann "temperature" allerdings ohne die Sensor ID bekomme, siehe Screenshot.
      Oder soll ich dann etwa für jeden Wert eine eigene MQTT-Übertragung (mit Zugangsdaten etc pp) in Node Red anlegen?

      Mein bisher genutztes Skript war echt perfekt , wenn es auf dem Raspi nur nicht mit Homebridge kollidieren würde (vermutlich wegen beiderseitigem Zugriff auf Port 9898).
      Langfristiges Ziel soll eigentlich sein, Loxberry, Homebridge und die Xiaomi-Anbindung (wie auch immer umgesetzt) auf ein und demselben Raspi zum Laufen zu bekommen.

      Grüße, Martin



      Angehängte Dateien

      Kommentar

      • AlexAn
        Lebende Foren Legende
        • 25.08.2015
        • 4323

        #4
        Darum war ja mein Gedanke einer Vorsortierung in NodeRed
        Je Sensor ein UDP Port
        oder
        Je Sensor eine MQTT Topic Erweiterung (keinen neuen MQTT Server)
        Pro Gerät eine Topic Erweiterung wo alles gesendet wird. Das haben wir ja auch bei den Shelly´s nur wird das Topic vom Gerät selber erstellt in der Gruppe shellies.

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: zigbee.PNG Ansichten: 0 Größe: 284,0 KB ID: 240611
        Der Vorteil ist auch dass du den Sensor tauschen kannst und er nur in NodeRed angepasst werden muss!


        Von wie vielen Sensoren sprechen wir?
        Zuletzt geändert von AlexAn; 15.03.2020, 07:52.
        Grüße Alex

        Kommentar

        • Clubsport
          MS Profi
          • 11.01.2018
          • 602

          #5
          Der Tip ist gut, so werde ich das denke ich machen.... Habe das mit der Topic-Erweiterung nicht auf dem Schirm gehabt.... DANKE!
          Muss nun zwar trotzdem alles händisch anlegen, aber naja...

          Grüße, Martin

          Kommentar

          • Clubsport
            MS Profi
            • 11.01.2018
            • 602

            #6
            AlexAn : Hast du vielleicht gleich noch eine gute Idee, wie man die " - XX Grad rotate" / "+ XX Grad rotate" in Loxone weiterverarbeiten kann?
            Ne "Schleife" vom Dimmerausgang an einen Additionsbaustein funktioniert nicht, das ist zu "schnell"...

            Grüße, Martin

            Kommentar

            • AlexAn
              Lebende Foren Legende
              • 25.08.2015
              • 4323

              #7
              Hast du es schon mit einem Loxonebinding versucht: https://flows.nodered.org/node/node-red-contrib-loxone
              Grüße Alex

              Kommentar

              • Clubsport
                MS Profi
                • 11.01.2018
                • 602

                #8
                Nee du hast mich missverstanden... Ich bekomme die +/- XX Grad vom Cube ja schon Loxone rein, nur ich hab keine rechte Idee wie ich (wenn mein Dimmer auf z.B. Analogwert 80 steht, ich bei "-20 Grad" vom Cube da Analogwert 60 draus machen kann...
                Also eher eine Loxone-Logik-Frage.

                Grüße, Martin

                Kommentar


                • AlexAn
                  AlexAn kommentierte
                  Kommentar bearbeiten
                  zeig mal her wie das jetzt machst
              • Clubsport
                MS Profi
                • 11.01.2018
                • 602

                #9
                So, mal abstauben hier..... Vielleicht kann ich ja auch mal was sinnvolles beitragen!
                Vielleicht hilft es ja jemandem, bei mir hat es so jedenfalls funktioniert!
                Damit kann man den Xiaomi-Cube zur Ansteuerung eines Dimmers (oder Laustärkeregelung, etc.) nutzen.

                Grüße, Martin
                Angehängte Dateien

                Kommentar

                Lädt...