Hilfe beim Einstieg in Node Red

Ich bräuchte mal eure Hilfe beim erstellen einer Node Red funktion.
Ich habe erfolgreich einen Virtuellen homee erstellt und dazu einen virtuellen Temperatur-Sensor. Jetzt möchte ich den Temperatur-Wert aus ioBroker zum homee übertragen. leider habe ich keine Ahnung wie ich den Wert dor hinein bekomme.
Den Wert, den ich übertragen möchte, ist ein Datenpunkt, der von mehreren Temperatur-Sensoren zusammen gerechnet wurde.


Hast das Gerät Temperatur_Wohnzimmer schon in deinem homee hinzugefügt?

Gerät hinzufügen:

Du kannst das mit einer Funktion oder dem Template node erreichen.

Du verknüpfst das iobroker mit einem Funktionsnode und diese verknüpfst du dann mit dem device Node.

In die Funktion schreibst du dann folgendes

msg.payload = { attributes : {id:000,value: msg.payload}};
return msg;

Das sollte es dann eigentlich sein.

Dies steht auch in der Info zum device Node.

1 „Gefällt mir“

Nein, nur Temperatur Wohnzimmer 0002 wird im Homee angezeigt

Danke, werde ich gleich ausprobieren

Leider bleibt der Wert auf 0 stehen. Eventuell noch einen Tipp?

Oh du musst attribute und nicht attributes schreiben,
Sorry mein Fehler

Das attributes nimmst du nur wenn du mehrere Attribute gleichzeitig an das Device Node sendest. :see_no_evil:

Bin schon näher dran, aber so ganz klappt es noch nicht.

Dann stell einfach den iobroker Node auf Objekt und in der Funktion schreibst dann msg.payload.val beim value

Alternativ value: parseFloat(msg.payload)

Leider bringen mich diese Alternativen auch nicht weiter.

Du hast schon die AttributID entsprechend deines Device gesetzt ?

Dankeschön!!!
Ich habe es hinbekommen.
Habe auf Object umgestellt und die AttributID angepasst.
Anfangs hatte ich wohl einen Fehler beim Kopieren und Einfügen.

Hallöchen Zusammen,
auch ich komme nicht so richtig weiter.
Mein erster Gehversuch in NodeRed ist gerade einen Shelly Plug s (wegen der Strommessung) über den virtuellen Homee in Homee einzubinden.
Ich habe ein virtuelles Gerät angelegt, leider fehlt mit jegliche Idee, wie ich die Funktion zum Verbinden gestalten soll / muss.
Im Screenshot findet ihr das, was ich aktuell eingestellt habe.


Hey @Marion,
hier geht das besser mit dem helfen.
Hast du denn schon einen Flow erstellt ?
Kannst du mal deinen Flow als Code hier einstellen?
Dazu einfach deinen Flow markieren und exportieren in die Zwischenablage.
Dann hier auf den Button </> drücken und einfügen.

Ja ich hab etwas gebastelt, aber das ist noch nicht viel „Inhalt“ ich habe einfach die Funktion mit dem IObroker Input für Power und Switch verknüpft…
:woman_shrugging:

    "state": 1,
    "instance": 0,
    "minimum": 0,
    "maximum": 100,
    "current_value": 0,
    "target_value": 0,
    "last_value": 0,
    "data": "",
    "name": "",
    "unit": "%",
    "step_value": 1,
    "editable": 1,
    "last_changed": 1599456145,
    "changed_by": 1,
    "changed_by_id": 0,
    "based_on": 1,
    "options": []
}

Du müsstest den kompletten Flow mal als Code einstellen :see_no_evil:.

Ah sorry, jetzt hab ich es… Mein erster Versuch war copy & Paste und nicht exportiert.

[
    {
        "id": "1e0fdd5e.a4b823",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "2ba8191b.8557c6",
        "type": "ioBroker in",
        "z": "1e0fdd5e.a4b823",
        "name": "Power",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Power",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 100,
        "y": 100,
        "wires": [
            [
                "ee70355b.9a8cf8",
                "8cde52d1.6c7e6"
            ]
        ]
    },
    {
        "id": "ee70355b.9a8cf8",
        "type": "debug",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 350,
        "y": 20,
        "wires": []
    },
    {
        "id": "dea641a2.a375c8",
        "type": "homeeDevice",
        "z": "1e0fdd5e.a4b823",
        "virtual-homee": "",
        "name": "Shelly Plug S",
        "nodeId": "1",
        "showNodeId": true,
        "profile": "13",
        "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": 1635681024,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": "1",
                "node_id": "1"
            },
            {
                "type": 3,
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 5000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "W",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1635681594,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": "2",
                "node_id": "1"
            }
        ],
        "statusTemplate": "",
        "x": 520,
        "y": 160,
        "wires": [
            [
                "87ff4a28.ba781"
            ]
        ]
    },
    {
        "id": "87ff4a28.ba781",
        "type": "debug",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 730,
        "y": 160,
        "wires": []
    },
    {
        "id": "8cde52d1.6c7e6",
        "type": "function",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 300,
        "y": 100,
        "wires": [
            [
                "dea641a2.a375c8"
            ]
        ]
    },
    {
        "id": "1866aef9.341e31",
        "type": "ioBroker in",
        "z": "1e0fdd5e.a4b823",
        "name": "Switch",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Switch",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 100,
        "y": 220,
        "wires": [
            [
                "e00e3c26.1a10c",
                "3684265d.070332"
            ]
        ]
    },
    {
        "id": "e00e3c26.1a10c",
        "type": "function",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 300,
        "y": 220,
        "wires": [
            [
                "dea641a2.a375c8"
            ]
        ]
    },
    {
        "id": "3684265d.070332",
        "type": "debug",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 320,
        "y": 320,
        "wires": []
    }
]
[
    {
        "id": "2ba8191b.8557c6",
        "type": "ioBroker in",
        "z": "1e0fdd5e.a4b823",
        "name": "Power",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Power",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 100,
        "y": 100,
        "wires": [
            [
                "ee70355b.9a8cf8",
                "8cde52d1.6c7e6",
                "ef7dc964.7a09b"
            ]
        ]
    },
    {
        "id": "ee70355b.9a8cf8",
        "type": "debug",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 310,
        "y": 40,
        "wires": []
    },
    {
        "id": "dea641a2.a375c8",
        "type": "homeeDevice",
        "z": "1e0fdd5e.a4b823",
        "virtual-homee": "",
        "name": "Shelly Plug S",
        "nodeId": "1",
        "showNodeId": true,
        "profile": "13",
        "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": 1635681024,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": "1",
                "node_id": "1"
            },
            {
                "type": 3,
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 5000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "W",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1635681594,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": "2",
                "node_id": "1"
            }
        ],
        "statusTemplate": "",
        "x": 520,
        "y": 160,
        "wires": [
            [
                "87ff4a28.ba781"
            ]
        ]
    },
    {
        "id": "87ff4a28.ba781",
        "type": "debug",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 730,
        "y": 160,
        "wires": []
    },
    {
        "id": "8cde52d1.6c7e6",
        "type": "function",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 300,
        "y": 100,
        "wires": [
            []
        ]
    },
    {
        "id": "1866aef9.341e31",
        "type": "ioBroker in",
        "z": "1e0fdd5e.a4b823",
        "name": "Switch",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Switch",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 100,
        "y": 220,
        "wires": [
            [
                "e00e3c26.1a10c",
                "3684265d.070332",
                "eba70ce9.eb16a8"
            ]
        ]
    },
    {
        "id": "e00e3c26.1a10c",
        "type": "function",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 300,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "3684265d.070332",
        "type": "debug",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 320,
        "y": 320,
        "wires": []
    },
    {
        "id": "ef7dc964.7a09b",
        "type": "template",
        "z": "1e0fdd5e.a4b823",
        "name": "Verbrauch",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":1,\"value\":{{payload}}}}",
        "output": "json",
        "x": 310,
        "y": 140,
        "wires": [
            [
                "dea641a2.a375c8"
            ]
        ]
    },
    {
        "id": "eba70ce9.eb16a8",
        "type": "template",
        "z": "1e0fdd5e.a4b823",
        "name": "switch",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":2,\"value\":{{payload}}}}",
        "output": "json",
        "x": 290,
        "y": 260,
        "wires": [
            [
                "dea641a2.a375c8"
            ]
        ]
    }
]

Schau dir das mal an ob es dir hilft.
Die Frage ist was dein switch von IoBroker sendet, hier musst du wahrscheinlich noch umwandeln von true in 1 und false in 0.

Hier ein Change Node zum wechseln des Payload.

[
    {
        "id": "fd634a83.1e9fc",
        "type": "change",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "true",
                "fromt": "str",
                "to": "1",
                "tot": "num"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "false",
                "fromt": "str",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 240,
        "y": 480,
        "wires": [
            []
        ]
    }
]

Dieser kommt dann direkt nach dem Iobroker Node und vor dem Template Node.

Jetzt klappt es. Die Node-ID’s waren noch vertauscht.
Wofür benötige ich die function nodes? oder sind die nur noch drin, weil ich die da rein gefummelt hatte.
Was hast du jetzt prinzipiell anders angestellt?
Und noch eine sache… ich kann jetzt aber irgendwie den Plug nicht über den Homee schalten. Geht das noch irgendwie?
Besten Dank! Sorry, wenn ich so viel frage, aber ich würde es auch gerne verstehen, nicht nur Kopieren und einfügen :wink:

Die Funktion wird nicht benötigt.
:wink:

[
    {
        "id": "2ba8191b.8557c6",
        "type": "ioBroker in",
        "z": "1e0fdd5e.a4b823",
        "name": "Power",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Power",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 70,
        "y": 100,
        "wires": [
            [
                "ef7dc964.7a09b"
            ]
        ]
    },
    {
        "id": "dea641a2.a375c8",
        "type": "homeeDevice",
        "z": "1e0fdd5e.a4b823",
        "virtual-homee": "",
        "name": "Shelly Plug S",
        "nodeId": "1",
        "showNodeId": true,
        "profile": "13",
        "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": 1635681024,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": "1",
                "node_id": "1"
            },
            {
                "type": 3,
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 5000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "W",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1635681594,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": "2",
                "node_id": "1"
            }
        ],
        "statusTemplate": "",
        "x": 480,
        "y": 100,
        "wires": [
            [
                "d63c3ce3.8b8598"
            ]
        ]
    },
    {
        "id": "1866aef9.341e31",
        "type": "ioBroker in",
        "z": "1e0fdd5e.a4b823",
        "name": "Switch",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Switch",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 70,
        "y": 140,
        "wires": [
            [
                "fd634a83.1e9fc"
            ]
        ]
    },
    {
        "id": "ef7dc964.7a09b",
        "type": "template",
        "z": "1e0fdd5e.a4b823",
        "name": "Verbrauch",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":2,\"value\":{{payload}}}}",
        "output": "json",
        "x": 210,
        "y": 100,
        "wires": [
            [
                "dea641a2.a375c8"
            ]
        ]
    },
    {
        "id": "eba70ce9.eb16a8",
        "type": "template",
        "z": "1e0fdd5e.a4b823",
        "name": "switch",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":1,\"value\":{{payload}}}}",
        "output": "json",
        "x": 330,
        "y": 140,
        "wires": [
            [
                "dea641a2.a375c8"
            ]
        ]
    },
    {
        "id": "fd634a83.1e9fc",
        "type": "change",
        "z": "1e0fdd5e.a4b823",
        "name": "Change",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "true",
                "fromt": "str",
                "to": "1",
                "tot": "num"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "false",
                "fromt": "str",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 200,
        "y": 140,
        "wires": [
            [
                "eba70ce9.eb16a8"
            ]
        ]
    },
    {
        "id": "d63c3ce3.8b8598",
        "type": "function",
        "z": "1e0fdd5e.a4b823",
        "name": "",
        "func": "if (msg.payload.attributeId === 1){ \n    return {\n        payload: msg.payload.targetValue === 1 ? true : false\n    }\n}\nreturn;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 640,
        "y": 100,
        "wires": [
            [
                "45ff9056.c8efd"
            ]
        ]
    },
    {
        "id": "45ff9056.c8efd",
        "type": "ioBroker out",
        "z": "1e0fdd5e.a4b823",
        "name": "switch",
        "topic": "shelly.0.SHPLG-S#51D8B8#1.Relay0.Switch",
        "ack": "false",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 770,
        "y": 100,
        "wires": []
    }
]

So kann es aussehen mit dem Switch Rückkanal.