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

Hier für die Bastler unter uns.
Wer das Icon der Geräte ändern möchte kann das machen.
Habe die Icon nicht für jedes Gerät getestet. Also einfach probieren und schauen ob es klappt.

Gebt folgendes in den Inject Node ein ( als String)

PUT:/nodes/123/?image=nodeicon_xxxxx

Die 123 muss durch die Node ID ausgetauscht werden.
Hier die Entsprechenden Icon (für die xxxx).

homeegram
bulb
camera
doorsensor
doublebulb
doubleplug
garagedoor
motiondetector
plug
shutter
speaker
temperature
tv
windowhandle
brightnesssensor
co2
doorbell
flooddetector
gesturecontrol
netatmorainmodule
netatmowindmodule
onebuttonremote
presence
radiator
remote
siren
smokedetector
twobuttonremote
armchair
bed
bolt
house
lock
pot
shield
star
suitcase
sun
teddy
turtle
turtle2
xmastree

Viel Spaß dabei.
VG Micha

13 „Gefällt mir“

Hier mal der Flow…


Der wo die set msg topic function drin ist. Diese bewirkt nur dass der lange topic aus dem iobroker lesbar wird bzw. Vorlauf oder rueck.

Hallo @Hamudulu,

deine Funktion kann so nicht funktionieren.
Dadurch das deine Werte für Vorlauf und Rücklauf nicht in einem Payload stecken,
sondern in getrennten , kann die Funktion nicht richtig rechnen.
Deshalb bekommst du auch als Ergebnis NaN.

Es gibt mehrere Möglichkeiten das zu lösen.
Du kannst mit dem iobroker GET Node arbeiten und den jeweils anderen Wert abrufen oder du legst deine Werte in einer Globalen Variablen ab.

Wenn du Fragen hast zu den Globalen Variablen dann nur zu.
VG Micha

1 „Gefällt mir“

Wie funktioniert das mit der Get Node? Kannst du mir aufmalen wieder flow ausehen muss?
Das mit dem Global hab ich schon mal gehört und auch schon viel gesehen und gelesen, aber irgendwie macht es nicht klick. Wo stell ich das ein?

edit: https://www.youtube.com/watch?v=1MeR8sopLNA das hier war hilfreich, so versuch ich das mal…

Du kannst auch in den Node Red slack kommen ( weiter oben ), dort kann man Dir das schneller erklären. Da kannst du auch deinen flow einstellen ( exportieren).

VG Micha

Hier sind die neuen Icon , falls die jemand händisch ändern muss.

repeater

washingmachine

dryer

entrancedoor

ventilationsystem

patiodoubledoor

bathtub

staircase

storageroom

toilet

VG Micha

6 „Gefällt mir“

Hi,

benutzt jemand einen Harmony Hub Node… wenn ja welchen?

Würde gerne mit einem Wemo kombinieren… inkl. Rückmeldung in homee.

Ich nutze den harmony Websocket Node in node-red mit der harmony Firmware 4.15.206. Habe dies in Verbindung mit einem Wemo inkl. Rückmeldung schon lange laufen.

@madmax
Hmmm… habe auch den Websocket Node…

Hast du vielleicht einen Flow für mich, wie du es gemacht hast. An/aus bekomme ich hin… Rückmeldung aber nicht

Hi @medicus07. Hier mein node-red Flow.
Du muusst noch zwei HG erstellen für Ein uns Aus mit den Entsprechenden WH (Wenn WH (als Auslöser) und dann Harmony Ein, und das selbe zum Ausschalten.
Dann noch den Wemo in homee und und die WH Url in node-red eintragen und dann fertig… Geht bestimmt noch schöner aber bei mir läuft es…

[
{
“id”: “32f6eb33.d24ab4”,
“type”: “tab”,
“label”: “WH Harmony TV”,
“disabled”: false,
“info”: “”
},
{
“id”: “dc199efa.1e581”,
“type”: “http request”,
“z”: “32f6eb33.d24ab4”,
“name”: “Harmony TV”,
“method”: “GET”,
“ret”: “txt”,
“url”: “Webhook URL”,
“tls”: “”,
“x”: 870,
“y”: 60,
“wires”: [
[]
]
},
{
“id”: “b1c2ff61.6a6a1”,
“type”: “http request”,
“z”: “32f6eb33.d24ab4”,
“name”: “Harmony Off”,
“method”: “GET”,
“ret”: “txt”,
“url”: “Webhook URL”,
“tls”: “”,
“x”: 870,
“y”: 140,
“wires”: [
[]
]
},
{
“id”: “4b7e2310.06689c”,
“type”: “switch”,
“z”: “32f6eb33.d24ab4”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: [
{
“t”: “eq”,
“v”: “true”,
“vt”: “str”
},
{
“t”: “eq”,
“v”: “false”,
“vt”: “str”
}
],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 670,
“y”: 100,
“wires”: [
[
“dc199efa.1e581”
],
[
“b1c2ff61.6a6a1”
]
]
},
{
“id”: “57073968.f418b8”,
“type”: “function”,
“z”: “32f6eb33.d24ab4”,
“name”: “Harmony TV (function) NEU”,
“func”: “var tv_ein = {payload: true };\nvar tv_aus = {payload: false};\n\n// TV\nif (msg.payload.activity == “25374855”&&\n msg.payload.status == “1”)\n{return [tv_ein,null]}\nif(\n msg.payload.activity == “25374855”&&\n msg.payload.status == “3”)\n{return [null,tv_aus]}\n”,
“outputs”: 1,
“noerr”: 0,
“x”: 440,
“y”: 100,
“wires”: [
[
“4b7e2310.06689c”
]
]
},
{
“id”: “42b9411b.18731”,
“type”: “HWS observe”,
“z”: “32f6eb33.d24ab4”,
“name”: “Harmony Hub”,
“server”: “7c331846.d45b48”,
“x”: 120,
“y”: 100,
“wires”: [
[
“57073968.f418b8”
]
]
},
{
“id”: “e8a52ad7.f26d58”,
“type”: “wemo-emulator”,
“z”: “32f6eb33.d24ab4”,
“name”: “Harmony TV”,
“friendlyName”: “Harmony TV”,
“serial”: “10”,
“port”: “10010”,
“onTopic”: “”,
“onPayload”: “on”,
“offTopic”: “”,
“offPayload”: “off”,
“x”: 110,
“y”: 180,
“wires”: [
[
“57073968.f418b8”
]
]
},
{
“id”: “7c331846.d45b48”,
“type”: “harmonyws-server”,
“z”: “”,
“name”: “Harmony Hub”,
“ip”: “192.168.178.666”
}
]

2 „Gefällt mir“

ok, danke dir… funktioniert!

1 „Gefällt mir“

Alles klar. Sehr gerne

1 „Gefällt mir“

Hallo,

ich habe mir eine kleine Funktion gebastelt um meinen Durchschnittsverbrauch zu ermitteln. Das funktioniert gut so lange ich in regelmäßigen Zeitabständen Werte übermittelt bekomme. Kommen nun unregelmässig Werte weil niemand zu Hause ist oder Nachts, dann wird das Ergebnis verfälscht :frowning:

Aktuell lasse ich jede Wertänderung addieren und dann durch die Anzahl der Einträge speichern. Hat jemand eine Idee wie ich das programmiertechnisch genauer berechnen kann? Am besten ohne belastende Loops…

Viele Grüße
JayJay

Aber das ist doch eigentlich die richtige Vorgehensweise. Hierbei spielt auch das Zeitintervall zwischen den Werten keine Rollo.
Oder was gefällt dir daran noch nicht?

Guten Morgen,

dachte ich ja auch, aber das Ergebnis ist um das 3-4 fache zu hoch… Wenn in der Nacht nur alle 20-50 Minuten ein Wert aktualisiert wird und tagsüber alle 10-15 Sekunden ist der Gesamtwert viel höher als er sein sollte und somit auch der Gesamtverbrauch.
Ich habe das jetzt so gelöst, dass ich kede Minute den Wert wiederhole. Das sieht schon besser aus aber elegant ist das noch nicht… Ich hab da noch einen Knoten im Kopf.

Viele Grüße
JayJay

Guten Morgen @JayJayX,

Hab mir mal dein Problem zu Gemüte geführt.
Du müsstes eigentlich einen anhand eines Zeitstempels die Werte auf 1 Sekunde runter bzw. hoch rechnen.
Wenn also ein payload kommt dann musst du zwei Werte speichern ( Zeit und Verbrauch ).
Wenn dann der neue Payload kommt, dann musst du die alten Werte nehmen und damit anhand der Dauer den Verbrauch berechnen und speichern.
Klingt kompliziert aber sollte so dann gehen.

VG Micha

1 „Gefällt mir“

Und was wäre, wenn man den Input auf einmal pro 10 Minuten runterfiltert?
Ist dann zwar ungenauer für den Moment, sollte aber auch funktionieren.

1 „Gefällt mir“

Danke Euch beiden, ich schau mal am WE ob und wie ich es hin bekomme.
Meine “schmutzige” Version funktioniert auf jeden Fall schon mal besser, produziert mir aber zu viel Traffic…

Viele Grüße
JayJay

Und

2 „Gefällt mir“

Habe mir das
Angeschaut und die erste Funktion mal fertiggestellt.

Diese summiert Dir den Tatsächlichen Verbrauch auf und zeigt Dir dann die entsprechenden Sekunden dazu an.
Das lässt sich natürlich auf auf Stunden anzeigen.
Die ersten Tests laufen und es scheint zu funktionieren.
Wenn du Interesse hast sag Bescheid.