Node Red - Hilfe-/Frage-/Ideen-/Austausch - Thread

Ich bräuchte nun auch mal eure Hilfe zu Node Red. Ich steh bei dem ganzen leider etwas auf dem Schlauch…

Ich habe einen Xiaomi Temperatur und Feuchtigkeitssensor der über Bluetooth Low Energie funkt.
Den Sensor habe ich zu NR hinzugefügt und erhalte auch ein msg object payload mit battery,temperature und humidity.

Nun zu dem Teil wo ich nicht weiter weiß, wie bekomme ich die richtigen Daten an den homeeDevice Node?

Ich habe einen homeeDevice Node erstellt, dort die NodeID und das Profil 3001 angegeben, was kommt aber jetzt bei den Attributes rein?

Wenn ich den Ausgang des Sensors mit dem homeeDevice verbinde, erhalte ich eine Fehlermeldung "msg: string[63] “payload.id and payload.value must be numeric”

Ich wäre euch für einen kleinen Denkanstoß echt dankbar :slight_smile:

Kannst ruhig im neuen Thread posten…

Zu deinem Problem…
Du musst noch den Payload umwandeln und mit einer Funktion ans virtuelle Gerät weitergeben.

Schau dir das Beispiel mal an (Cave: vor deploy den verwendeten config node löschen):

[{"id":"65494b82.4d4ea4","type":"debug","z":"fd6d95c1.d70ae8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1210,"y":2800,"wires":[]},{"id":"c03b9efe.477f4","type":"homeeDevice","z":"fd6d95c1.d70ae8","homee-sim":"236538fb.027108","name":"Klima  Wohnzimmer","nodeId":"400","profile":"3014","icon":"default","attributes":"[{\"id\":400,\"node_id\":400,\"instance\":0,\"minimum\":0,\"maximum\":50,\"current_value\":23.6,\"target_value\":23.6,\"last_value\":23.799,\"unit\":\"%C2%B0C\",\"step_value\":0.5,\"editable\":0,\"type\":5,\"state\":1,\"last_changed\":1572966224,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":4,\"data\":\"\"},{\"id\":401,\"node_id\":400,\"instance\":0,\"minimum\":0,\"maximum\":100,\"current_value\":49,\"target_value\":49,\"last_value\":48,\"unit\":\"%25\",\"step_value\":1,\"editable\":0,\"type\":7,\"state\":1,\"last_changed\":1572966224,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":4,\"data\":\"\"},{\"id\":402,\"node_id\":400,\"instance\":0,\"minimum\":260,\"maximum\":1160,\"current_value\":993.299,\"target_value\":993.299,\"last_value\":993.2,\"unit\":\"mBar\",\"step_value\":5,\"editable\":0,\"type\":94,\"state\":1,\"last_changed\":1572966224,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":4,\"data\":\"\"},{\"id\":403,\"node_id\":400,\"instance\":0,\"minimum\":0,\"maximum\":4,\"current_value\":4,\"target_value\":4,\"last_value\":3,\"unit\":\"n%2Fa\",\"step_value\":1,\"editable\":0,\"type\":33,\"state\":1,\"last_changed\":1572461025,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":4,\"data\":\"\"}]","x":1010,"y":2800,"wires":[[]]},{"id":"29eb1f1a.0946b","type":"mqtt in","z":"fd6d95c1.d70ae8","name":"","topic":"zigbee2mqtt/KlimaWZ","qos":"2","datatype":"auto","broker":"306109be.a1add6","x":220,"y":2800,"wires":[["59fc0ce6.93ed74"]]},{"id":"59fc0ce6.93ed74","type":"json","z":"fd6d95c1.d70ae8","name":"","property":"payload","action":"","pretty":false,"x":450,"y":2800,"wires":[["509c776a.fe61e8","65494b82.4d4ea4"]]},{"id":"509c776a.fe61e8","type":"function","z":"fd6d95c1.d70ae8","name":"Filter Sensor","func":"var temp = msg.payload.temperature\nvar hum = msg.payload.humidity\nvar mbar = msg.payload.pressure\n\nnode.send({payload:{\"id\":400,\"value\":msg.payload.temperature}})\nnode.send({payload:{\"id\":401,\"value\":msg.payload.humidity}})\nnode.send({payload:{\"id\":402,\"value\":msg.payload.pressure}})","outputs":1,"noerr":0,"x":810,"y":2800,"wires":[["c03b9efe.477f4"]]},{"id":"cecbc7f1.b0eaf8","type":"comment","z":"fd6d95c1.d70ae8","name":"Simulation zigbee3mqtt (IDs 400 - 440)","info":"","x":270,"y":2740,"wires":[]},{"id":"236538fb.027108","type":"virtualHomee","z":"","name":"12345QWERT"},{"id":"306109be.a1add6","type":"mqtt-broker","z":"","name":"","broker":"192.168.1.27","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Mittlerweile hab ich wieder einige Stunden versucht das Ding zum laufen zu bekommen.
Das umwandeln sollte funktionieren, aber ich werde es erstmal mit einem manuellen inject versuchen.

Aber nochmal zur Anfangsfrage, woher weiß ich welches “Profile” ich beim homeeDevice auswählen soll und woher bekomme ich die Infos zu welche Attribute ich nutzen kann?

Hinterlege ich das Profil 3001 interessiert das homee recht wenig, mir wird nichts angezeigt.

Edit: Vll hättte ich erwähnen sollen, das ich von Node Red bisher keine Ahnung habe^^
Hab jetzt rausgefunden, das ich den Code in einen Flow kopieren muss :smile:
Es funktioniert jetzt das ich die Daten vom Sensor bekomme, nur die Batterie wird nicht im homee angezeigt

Edit2: Läuft nun, danke nochmals

1 „Gefällt mir“

Moin,

ich versuch mich jetzt auch gerade in Node Red einzuarbeiten - und habe es tatsächlich relativ schnell geschafft über meinen broadlink sender meinen Saugrobotter los zu schicken. Das hatte ich vorher über HASS gemacht. Da aber in dem Node Red plugin innerhalb von HASS sowohl das homee plugin nicht so sauber läuft und webhooks auch nicht ankommen bin ich jetzt recht schnell weg von HASS hin zu einer reinen NR Instanz.
Das der Saugrobotter brav losfährt wenn wir das Haus verlassen war für den WAF die wichtigste Funktion, jetzt will ich mir aber auch meinen Komfort zurück holen, weshalb ich gestern daran verzweifelt bin an meinen Google Home über den castv2 Node eine URL zu schicken.

Alles was ich bis jetzt dazu gefunden habe verweist immer wieder auf die Beschreibungsseite des CastV2 nodes, was mich aber nicht weiter bringt…
https://flows.nodered.org/node/node-red-contrib-castv2

Ich hab einfach noch nicht begriffen wie ich die MSG zusammenbauen muss damit der GH sie versteht.
mein Testflow sieht so aus:


und in dem Funktion Node habe ich diese Funktion eingetragen:

var payload ={
    "type":"media",
        "media": {
                "url": "https://ndr-ndr2-niedersachsen.sslcast.addradio.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3",
                "contentType": "audio/mp3"
                  }
             }
msg.payload=payload
return msg;

EDIT: IP des google home habe ich im Cast node direkt eingetragen und beim auslösen des Flows macht der auch das typische geräusch, wenn man einen stream an GH übergibt - mehr aber auch nicht.

Aber im debugger steht dann folgendes:

Kann mich mal jemand mit der Nase drauf stoßen was ich falsch mache, oder wie ich es richtig mache?
Danke

Ich verwende den node https://flows.nodered.org/node/node-red-contrib-alexa-remote2 um Alexa zu steuern.
Leider schaffe ich es nicht, dass meine Logindaten gespeichert werden. Muss regelmäßig aktualisieren,

Hab einen Pfad angegeben, in dem der Login gespeichert werden sollte… (~/AlexaTTS) leider funktioniert es nicht. Jemand von euch eine Idee?

hmm testen wohl alle die aktuelle Beta aus, oder kann mir wirklich keiner einen Tipp wie ich was wo eingeben muss? :rofl::grin::man_shrugging:

Schreibe mal:
„type“:„MEDIA“,

Ansonsten die Frage, ob https funktioniert, ggf. mal mit http testen

Habe selber keinen GH, rein aus den Infos zum Node…

var payload =
{
    type:"MEDIA",
    media:  {
             url: "https://ndr-ndr2-niedersachsen.sslcast.addradio.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3"
            }
}
msg.payload=payload
return msg;

Laut Beschreibung sind zuviele " " drin.

2 „Gefällt mir“

Genau… und die Anführungszeichen bei type, media, url und contentType

1 „Gefällt mir“

Möglicherweise mussen die Daten lokal gespeichtert werden.
Dazu kann man die ContextStorage Funktion in der settings.js von NR ändern… siehe hier:

https://nodered.org/docs/user-guide/context

1 „Gefällt mir“

:man_facepalming::man_facepalming:
werde ich gleich mal testen. DANKE!

die URL ist die gleiche, die ich vorher über HASS auch erfolgreich an den GH geben konnte, sollte daher funktionieren… hoffentlich!

LÄUFT! Danke nochmal!

1 „Gefällt mir“

Hi, da es in homee ja nicht möglich ist, Parameter für den Expertenmodus per homeegramm an ein in homee angelerntes Gerät zu übergeben, ginge das iwi über NodeRed?

VG und schöne Weihnachten!

1 „Gefällt mir“

Hi und ein frohes Neues,

ich habe hier noch die HA Bridge 4.5.5 aus 2017, aktuell ist ja die 5.3.0.
Ich nutze die Emulation um Licht und Rollläden mit der Harmony zu steuern. Jetzt wollte ich das ganze noch mit node-red verknüpfen. Das geht mit der 4.5.5 schon mal nicht.
Kann ich die .jar einfach entpacken und in das HA-Bridge Verzeichnis kopieren?

Viele Grüße
JayJay

Ich als blutiger Nodered Anfänger…
Wenn Payload in Klammern steht der Empfänger das aber ohne Klammern braucht (nehme ich an)
Wie mach ich das?

grafik

Guck mal hier:

2 „Gefällt mir“

Super, jetzt bin ich einen Schritt weiter;-) Vielen Dank!

@Micha danke für Deine YoutubeVideos.
Das hat mich doch gleich mal motiviert ein eigenes Dashboard mit NodeRed zu basteln… Und schon komm ich an diesem Punkt nicht weiter: Warum kann ich mit dieser Funktion den Zustand des Homeegramms nicht weitergeben?


Gruß

Versuche das mal:

if (… ){
return [{“da!”}];
}
if (… ){
return [{“weg”}];
}

Danke, das war es aber nicht!

Jetzt funzt es! Aber ob es wirklich an den Leerzeichen hier lag?!?!
grafik