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

Hi,

hier ein paar Screenshots:

  • das Json aus dem Debugger
  • der hih Device-Node
  • Wie es in der Homee App aussieht (Android)

Bildschirmfoto 2021-02-17 um 09.20.18

Hey @holger.tangermann,

mit node-red-contrib-stoptimer-varidelay klappt das für mich soweit ganz gut. Habe es auf 1 Sekunde gestellt und bekomme nun nur noch die letzte Nachricht der Staffel…

1 „Gefällt mir“

Kann mir jemand erklären warum folgendes nicht klappt und was ich falsch mache, aus den Erklärungen bei Google werde ich nicht schlau?

node.send (‚Nachricht1‘,‚Nachricht2‘,Variable1,Variable2);

Ich erwarte eigentlich eine Ausgabe pro Output, bekomme aber nur eine Fehlermeldung.
Wie kann ich das gewünschte Ziel erreichen?

Edit: Ich ergänze nochmal,

Warum funktioniert
return [null,{payload: true}];
aber
node.send [null,{payload: true}];
nicht?

Ich möchte das Scipt nicht beenden, sondern während des Ablaufs Meldungen an einen anderen Output ausgeben

Seit geraumer Zeit versuche ich mich daran, meine Zigbee-Geräte (größtenteils Xiami/Aqara-Sensoren) in Node-red zu verwenden was mir auch bei zwei drei Flows gelungen ist.
Im iobroker sind alldiese Zigbee-Geräte problems eingebunden und funktionsfähig.
Und nun kommt´s…
Bei Node-Red fehlen mir zwei Geräte in der Auflistung („ioBroker in“) und es werden nur 10 Geräteordner unter dem Verzeichnisbaum „zigbee0“ aufgelistet.
Über blockly kann ich auf jeden der 12 Sensoren/Schalter/Würfel zugreifen und ihn als Eingabegerät wählen.
Es wird doch keine Gerätebegrenzung bei Node-red geben!? Ich möchte ungern was davon rausschmeißen.
Kann mir jemand weiterhelfen?

Wenn Du neue Zigbee Geräte in ioBroker hinzugefügt hast, mußt Du (leider) den Node Red Adapter neu starten, damit die neuen Geräte auch in NR verfügbar sind.

2 „Gefällt mir“

Hat tatsächlich geklappt :smiley: , hätte ich auch selber drauf kommen können. :man_facepalming:
Vielen Danke für die schnelle Hilfe

Mein Versuch, einen NR-Flow zu erstellen, wo ein einfacher Zigbee-Button (Xiaomi) eingebunden in IObroker durch abwechselnden Tastendruck ein vHIH-Gerät ein/aus schalten soll, will einfach nicht klappen. Habe diverse Suchfunktionen hier in der Community und im Netz genutzt, einige Sachen ausprobiert und keine echten Erfolge verzeichnen können. Ich merke immerwieder schmerzlich, dass ich den Newbe Zustand zäh und langsam erst verlassen werde.
Wer kann mir weiterhelfen, vllt mit einem passendem Beispiel das ich auf meine Konfiguration anpassen kann?
Danke im Vorraus

Grundsätzlich gibt es zwei Wege:

  • Du kannst den Schalter als virtuelles Gerät in den Homee bringen und dort mit einem Homeegramm schalten.

  • Oder du machst die Logik in NodeRed und schaltest über die API, bzw. über ioBroker

Ich persönlich habe meine Geräte über die erste Variante eingebunden. Welchen Weg hast du dir vorgestellt?

Hier ein Flow für eine Schelly-Lampe geschaltet von einem FT55 mit Rückkanal. Diesen hole ich mir von iobroker. Die Shelly läuft auch in iobroker.

[
    {
        "id": "73addcaa.123ea4",
        "type": "homeeDevice",
        "z": "28afd837.1a9078",
        "virtual-homee": "",
        "name": "Licht Balkon hih",
        "nodeId": "10",
        "showNodeId": true,
        "profile": "16",
        "icon": "nodeicon_bulb",
        "attributes": [
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 4,
                "current_value": 4,
                "target_value": 4,
                "last_value": 4,
                "unit": "n%2Fa",
                "step_value": 1,
                "editable": 0,
                "state": 1,
                "last_changed": 1572944008,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "type": 33,
                "id": 100,
                "node_id": 10
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "n%2Fa",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 1572944008,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "type": 1,
                "id": 101,
                "node_id": 10
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 3000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "W",
                "step_value": 1,
                "editable": 0,
                "state": 1,
                "last_changed": 1572944008,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "type": 3,
                "id": 102,
                "node_id": 10
            }
        ],
        "statusTemplate": "",
        "x": 840,
        "y": 860,
        "wires": [
            [
                "5d605548.57fadc"
            ]
        ]
    },
    {
        "id": "d0255063.bb9b7",
        "type": "ioBroker out",
        "z": "28afd837.1a9078",
        "name": "Licht Balkon",
        "topic": "shelly.0.SHBDUO-1#D12D61#1.lights.Switch",
        "ack": "false",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 1370,
        "y": 860,
        "wires": []
    },
    {
        "id": "30ef0924.2e1ea6",
        "type": "ioBroker in",
        "z": "28afd837.1a9078",
        "name": "Leistung Licht Balkon",
        "topic": "shelly.0.SHBDUO-1#D12D61#1.lights.Power",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "x": 460,
        "y": 880,
        "wires": [
            [
                "fcf946d.26be3b8"
            ]
        ]
    },
    {
        "id": "fcf946d.26be3b8",
        "type": "function",
        "z": "28afd837.1a9078",
        "name": "Leistung",
        "func": "var power = Number(msg.payload);\nmsg.payload = {\"attribute\":{\"id\":102,\"value\":power}};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 640,
        "y": 880,
        "wires": [
            [
                "73addcaa.123ea4"
            ]
        ]
    },
    {
        "id": "4b6d0fdb.11c8d",
        "type": "ioBroker in",
        "z": "28afd837.1a9078",
        "name": "Switch Licht Balkon",
        "topic": "shelly.0.SHBDUO-1#D12D61#1.lights.Switch",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 450,
        "y": 840,
        "wires": [
            [
                "10aa07bb.8d6458"
            ]
        ]
    },
    {
        "id": "10aa07bb.8d6458",
        "type": "function",
        "z": "28afd837.1a9078",
        "name": "Switch",
        "func": "if (msg.payload == 'false') {\n    return [{\n        payload:{\"attribute\":{\"id\":101,\"value\":0}}}];\n}\n\nif (msg.payload == 'true') {\n    return [{\n        payload:{\"attribute\":{\"id\":101,\"value\":1}}}];\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 650,
        "y": 840,
        "wires": [
            [
                "73addcaa.123ea4"
            ]
        ]
    },
    {
        "id": "5d605548.57fadc",
        "type": "function",
        "z": "28afd837.1a9078",
        "name": "Switchs von homee",
        "func": "if (msg.payload.attributeId == 101)\n{\nif (msg.payload.targetValue === 0) {\n    return [{\n        payload:false}];\n}\nif (msg.payload.targetValue == 1) {\n    return [{\n        payload:true}];\n}\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 1050,
        "y": 860,
        "wires": [
            [
                "d0255063.bb9b7"
            ]
        ]
    }
]
1 „Gefällt mir“

@LorenzJ So, wie du es auch vorziehst. Ziel ist, nur die virtuellen Geräte zu erstellen und später in homee kommen die logischen Sachen.

Ich habe dir hier mal ein ganz einfaches Beispiel erstellt:

Wenn du den Flow in NodeRed importierst und deployst, kannst im Homee nach neuen Geräten suchen. Du findest dann einen Beispielschalter. Wenn du in NodeRed „Ein“ betätigst, meldet Homee „Taster wird eingeschaltet“, bei „Aus“ „Taster wird losgelassen“.

Wenn du dann die Injectnodes durch deinen realen Schalter ersetzt, kannst du deinen Taster in Homee weiterverarbeiten

[{"id":"f78e7bfc.1e5b7","type":"tab","label":"Beispiel Schalter","disabled":false,"info":""},{"id":"f917d09b.aeaee8","type":"inject","z":"f78e7bfc.1e5b7","name":"Ein","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"attribute\": {\"id\": 12, \"value\":1}}","payloadType":"json","x":270,"y":220,"wires":[["67d68a9a.5791ec"]]},{"id":"f6d76fbc.f3ce98","type":"inject","z":"f78e7bfc.1e5b7","name":"Aus","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"attribute\": {\"id\": 12, \"value\":2}}","payloadType":"json","x":270,"y":260,"wires":[["67d68a9a.5791ec"]]},{"id":"67d68a9a.5791ec","type":"homeeDevice","z":"f78e7bfc.1e5b7","virtual-homee":"","name":"Beispielschalter","nodeId":"5","showNodeId":true,"profile":"20","icon":"default","attributes":[{"type":40,"state":1,"instance":0,"minimum":1,"maximum":2,"current_value":0,"target_value":0,"last_value":0,"data":"","name":"","unit":"n%2Fa","step_value":1,"editable":0,"last_changed":1615726519,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":12,"node_id":5}],"statusTemplate":"","x":490,"y":240,"wires":[[]]}]

Hallo,

wie kann ich ein Gerät vom Master disablen/enablen?
Ich dachte es funktioniert in der Art PUT:/nodes/467?state=2
Funktioniert leider nicht.
Könnt Ihr mir bitte weiterhelfen?

danke für deine AW
ich habe schon erfolgreich wenige virtuelle Geräte am Laufen. Ich suche nur die Lösung, dass ein Taster mit nur einem kurzen Tastendruck das vHiH Gerät einschaltet und dieses beim nächsten mal drücken wieder ausschaltet.

Soweit bin ich bereits gekommen, allerdings „verschwende“ ich eine zusätzliche Tastfunktion für`s Ausschalten…

[
{
„id“: „dbaf85c3.776d48“,
„type“: „tab“,
„label“: „ZigBee Taster Mijia“,
„disabled“: false,
„info“: „Xiaomi WXKG01LM“
},
{
„id“: „31c0da23.7d870e“,
„type“: „ioBroker in“,
„z“: „dbaf85c3.776d48“,
„name“: „Click event -> Eintasten“,
„topic“: „zigbee.0.00158d00067eff80.click“,
„payloadType“: „value“,
„onlyack“: „“,
„func“: „all“,
„gap“: „“,
„fireOnStart“: „false“,
„x“: 160,
„y“: 100,
„wires“: [
[
„3ca8cf35.92f038“
]
]
},
{
„id“: „3ca8cf35.92f038“,
„type“: „change“,
„z“: „dbaf85c3.776d48“,
„name“: „“,
„rules“: [
{
„t“: „set“,
„p“: „payload“,
„pt“: „msg“,
„to“: „{„attribute“:{„id“:700,„value“:1}}“,
„tot“: „json“
}
],
„action“: „“,
„property“: „“,
„from“: „“,
„to“: „“,
„reg“: false,
„x“: 370,
„y“: 100,
„wires“: [
[
„7a3ab3e.3b002cc“
]
]
},
{
„id“: „fa7223b2.9f4f4“,
„type“: „change“,
„z“: „dbaf85c3.776d48“,
„name“: „“,
„rules“: [
{
„t“: „set“,
„p“: „payload“,
„pt“: „msg“,
„to“: „{„attribute“:{„id“:700,„value“:0}}“,
„tot“: „json“
}
],
„action“: „“,
„property“: „“,
„from“: „“,
„to“: „“,
„reg“: false,
„x“: 370,
„y“: 160,
„wires“: [
[
„7a3ab3e.3b002cc“
]
]
},
{
„id“: „37539c9c.ac08dc“,
„type“: „ioBroker in“,
„z“: „dbaf85c3.776d48“,
„name“: „Double click event -> Austasten“,
„topic“: „zigbee.0.00158d00067eff80.double_click“,
„payloadType“: „value“,
„onlyack“: „“,
„func“: „all“,
„gap“: „“,
„fireOnStart“: „false“,
„x“: 130,
„y“: 160,
„wires“: [
[
„fa7223b2.9f4f4“
]
]
},
{
„id“: „7a3ab3e.3b002cc“,
„type“: „homeeDevice“,
„z“: „dbaf85c3.776d48“,
„virtual-homee“: „“,
„name“: „Mijia_SmartButton“,
„nodeId“: „7“,
„showNodeId“: true,
„profile“: „15“,
„icon“: „default“,
„attributes“: [
{
„type“: 1,
„state“: 1,
„instance“: 0,
„minimum“: 0,
„maximum“: 1,
„current_value“: 0,
„target_value“: 0,
„last_value“: 0,
„data“: „“,
„name“: „“,
„unit“: „“,
„step_value“: 1,
„editable“: 1,
„last_changed“: 1613576454,
„changed_by“: 1,
„changed_by_id“: 0,
„based_on“: 1,
„options“: [],
„id“: 700,
„node_id“: 7
},
{
„type“: 2,
„state“: 1,
„instance“: 0,
„minimum“: 0,
„maximum“: 100,
„current_value“: 0,
„target_value“: 0,
„last_value“: 0,
„data“: „“,
„name“: „“,
„unit“: „%25“,
„step_value“: 1,
„editable“: 1,
„last_changed“: 1615458749,
„changed_by“: 1,
„changed_by_id“: 0,
„based_on“: 1,
„options“: [],
„id“: 701,
„node_id“: 7
}
],
„statusTemplate“: „“,
„x“: 640,
„y“: 180,
„wires“: [
[]
]
},
{
„id“: „8c9c7fd9.b743e“,
„type“: „comment“,
„z“: „dbaf85c3.776d48“,
„name“: „Mijia Smart-Button“,
„info“: „zwei Geräte schalten ein VHiH-Gerät on/off\nlong klick event setzt 20%“,
„x“: 150,
„y“: 20,
„wires“: []
},
{
„id“: „21189843.708748“,
„type“: „change“,
„z“: „dbaf85c3.776d48“,
„name“: „“,
„rules“: [
{
„t“: „set“,
„p“: „payload“,
„pt“: „msg“,
„to“: „{„attribute“:{„id“:701,„value“:20}}“,
„tot“: „json“
}
],
„action“: „“,
„property“: „“,
„from“: „“,
„to“: „“,
„reg“: false,
„x“: 370,
„y“: 220,
„wires“: [
[
„7a3ab3e.3b002cc“
]
]
},
{
„id“: „f2ece5e9.e51e9“,
„type“: „ioBroker in“,
„z“: „dbaf85c3.776d48“,
„name“: „Long click event -> Helligkeit 20%“,
„topic“: „zigbee.0.00158d00067eff80.long_click“,
„payloadType“: „value“,
„onlyack“: „“,
„func“: „all“,
„gap“: „“,
„fireOnStart“: „false“,
„x“: 130,
„y“: 220,
„wires“: [
[
„21189843.708748“
]
]
},
{
„id“: „f24cd7f1.d452e“,
„type“: „change“,
„z“: „dbaf85c3.776d48“,
„name“: „“,
„rules“: [
{
„t“: „set“,
„p“: „payload“,
„pt“: „msg“,
„to“: „{„attribute“:{„id“:701,„value“:100}}“,
„tot“: „json“
}
],
„action“: „“,
„property“: „“,
„from“: „“,
„to“: „“,
„reg“: false,
„x“: 370,
„y“: 280,
„wires“: [
[
„7a3ab3e.3b002cc“
]
]
},
{
„id“: „ae6ee49.9d12518“,
„type“: „inject“,
„z“: „dbaf85c3.776d48“,
„name“: „setze Helligkeit 100“,
„props“: [
{
„p“: „payload“
},
{
„p“: „topic“,
„vt“: „str“
}
],
„repeat“: „“,
„crontab“: „“,
„once“: false,
„onceDelay“: 0.1,
„topic“: „“,
„payload“: „“,
„payloadType“: „date“,
„x“: 150,
„y“: 280,
„wires“: [
[
„f24cd7f1.d452e“
]
]
}
]

Also würdest du gerne nach dem ersten Tasterdruck ein „true“ und beim nächsten ein „false“ an das vHIH Gerät schicken?

Das sollte mit einer Flow-Variablen und der Switch-Node funktionieren. Da kann ich morgen gerne ein kleines Beispiel posten.

1 „Gefällt mir“

genau :smiley:

Versuch es mal hiermit:

Beim starten wird die Flow-Variable flow.merker mit false initiiert. Immer wenn die Injektnode „Taster“ ein Signal sendet, wird umgeschaltet.

[{"id":"f78e7bfc.1e5b7","type":"tab","label":"Beispiel Schalter","disabled":false,"info":""},{"id":"1fd03c31.60433c","type":"inject","z":"f78e7bfc.1e5b7","name":"Taster","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":250,"y":540,"wires":[["7a5b3aeb.66ad6c"]]},{"id":"7a5b3aeb.66ad6c","type":"switch","z":"f78e7bfc.1e5b7","name":"","property":"merker","propertyType":"flow","rules":[{"t":"false"},{"t":"true"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":540,"wires":[["a2fa09da.fbdd68"],["d7ebefb2.d2a338"]]},{"id":"4c1bb807.f1996","type":"inject","z":"f78e7bfc.1e5b7","name":"Initialisieren","props":[],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":310,"y":460,"wires":[["29d0875a.5e22b"]]},{"id":"29d0875a.5e22b","type":"change","z":"f78e7bfc.1e5b7","name":"","rules":[{"t":"set","p":"merker","pt":"flow","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":540,"y":460,"wires":[[]]},{"id":"a2fa09da.fbdd68","type":"change","z":"f78e7bfc.1e5b7","name":"ein","rules":[{"t":"set","p":"merker","pt":"flow","to":"true","tot":"bool"},{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":520,"wires":[["28f9c547.47b00a"]]},{"id":"d7ebefb2.d2a338","type":"change","z":"f78e7bfc.1e5b7","name":"aus","rules":[{"t":"set","p":"merker","pt":"flow","to":"false","tot":"bool"},{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":560,"wires":[["28f9c547.47b00a"]]},{"id":"28f9c547.47b00a","type":"debug","z":"f78e7bfc.1e5b7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":690,"y":540,"wires":[]}]
1 „Gefällt mir“

jetzt klappt es so wie ich es mir vorgestellt habe. Musste nur noch ein switch davorsetzen, um das False-Signal beim Loslassen des Tasters in´s Nirvana umzuleiten.
Nun geht´s an weitere Projekte…
ich lecke langsam Blut :yum:

1 „Gefällt mir“

hallo zusammen,

ich bin jetzt auch neu im Node red Universum :slight_smile:

Ich habe alles soweit auf einen Rasperry PI installiert und es läuft auch alles soweit. Ich kann auch einen Virtuelles Gerät steuern.

Ausgangssituation:
Fritzbox ist auf Version 7.25

  1. IOBroker installiert
  2. Node red installiert
  3. adapter installiert(homee und node-red-contrib-fritz)
  4. Fritzbox mit #965 angerufen

Jetzt zu meinem Problem.

Ich möchte gerne die Fritzbox auslesen, also die eingehen Anrufe und die Angesehenheit steuern.
Ich habe einen extra Benutzer angelegt und mit allen rechten versehen.
Beim calling Monitor steht immer keine Verbindung und beim Debug steht:

Error: connect ECONNREFUSED 192.168.188.1:1012
und
Disconnected with Error

Wenn ich den Adapter in IOBroker installiere gibt es keine Probleme. Das heiß ich kann Geräte hinzufügen und sehe meine Anrufliste.

Habt ihr eine Idee, was ich falsch mache ?

Könnte am Port und Raspian liegen, versuche es doch mal mit einem größeren Port, z.B. 4195