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

Das ist die IP von echten homee. Ich will über diesen Node an die Geräteinformationen vom echten homee, wie bspw. Wetterdaten…

Achja stimmt ja und die IP vom Pi? Ich hatte das auf Grund eines Fehlers, das mein Pi zwei IP’s hatte. So konnte ich Nodered bedienen aber mich nicht auf den Pi einwählen per SSH und er verschwand immer wieder im Netzwerk. Hast du dem Pi eine feste IP gegeben?

Ja habe ich, der Pi hat eine feste. Ich habe es gerade auch mal über die homee ID probiert (also diese 5er Nummer mit führenden 0).

Er loggt sich erfolgreich ein aber gleiches Ergebnis. Sobald der Status vom homeeAPI Node connected steht, sind alle virtuellen Geräten im echten homee nicht verfügbar :man_shrugging:t4:

Ich gebe zu, ich habe keine Ahnung, ob es was hilft. Aber bei mir ist hier ein Häkchen drin. Die API-Abfrage läuft ohne Probleme.

grafik

1 „Gefällt mir“

Korrekt, hier muss ein Haken gesetzt sein.

Hier für die Node Red User eine Funktion zum ersetzen von Geräten in homeegrammen.

[
    {
        "id": "76e0d02a.6b828",
        "type": "inject",
        "z": "2fafa37e.5aa2cc",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "get:homeegrams",
        "payloadType": "str",
        "x": 260,
        "y": 780,
        "wires": [
            [
                "b4a088b.49bff78"
            ]
        ]
    },
    {
        "id": "38807a9c.1d3116",
        "type": "function",
        "z": "2fafa37e.5aa2cc",
        "name": "Attribute und Node ID ersetzen bei Trigger , Conditions und Actions",
        "func": "var nodeold = 1226;\nvar attributold = 3137;\n\nvar nodenew = 92;\nvar attributnew = 348\n\nif (Object.keys(msg.payload)[0] === \"homeegrams\"){\nvar hg = msg.payload.homeegrams;\nhg.forEach(function(hgs){\n    hgs.triggers.attribute_triggers.forEach(function(trigger){\n        if (trigger.node_id == nodeold && trigger.attribute_id == attributold){\n            \n        node.send({payload: \"PUT:homeegrams/\"+trigger.homeegram_id+\"/triggers/\"+trigger.id+\"?attribute_id=\"+attributnew});\n    \n        node.send({payload: \"PUT:homeegrams/\"+trigger.homeegram_id+\"/triggers/\"+trigger.id+\"?node_id=\"+nodenew})}\n    })\n    hgs.actions.attribute_actions.forEach(function(action){\n        if (action.node_id == nodeold && action.attribute_id == attributold){\n            \n        node.send({payload: \"PUT:homeegrams/\"+action.homeegram_id+\"/actions/\"+action.id+\"?node_id=\"+nodenew+\"&attribute_id=\"+attributnew})}\n    })\n    hgs.conditions.attribute_conditions.forEach(function(conditions){\n        if (conditions.node_id == nodeold && conditions.attribute_id == attributold){\n            \n        node.send({payload: \"PUT:homeegrams/\"+conditions.homeegram_id+\"/conditions/\"+conditions.id+\"?node_id=\"+nodenew+\"&attribute_id=\"+attributnew})}\n    })\n})\n}\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 580,
        "y": 700,
        "wires": [
            [
                "b4a088b.49bff78",
                "7b910a91.3b31b4"
            ]
        ]
    },
    {
        "id": "b4a088b.49bff78",
        "type": "homeeApi",
        "z": "2fafa37e.5aa2cc",
        "homee": "",
        "name": "homeeApi",
        "messageTypeFilter": [],
        "nodeFilter": null,
        "attributeFilter": null,
        "x": 540,
        "y": 780,
        "wires": [
            [
                "38807a9c.1d3116"
            ]
        ]
    },
    {
        "id": "7b910a91.3b31b4",
        "type": "debug",
        "z": "2fafa37e.5aa2cc",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 880,
        "y": 780,
        "wires": []
    }
]

In der Funktion müsst Ihr die alte und neue Node_ID sowie Attribut_ID eingegeben werden.
Danach ein Get:homeegrams an die Api senden und die funktion ersetzt in alle HG’s die ID’s.

Viel Spaß und Erfolg

4 „Gefällt mir“

Danke @Sofasportler & @ReneH, ich habe den Haken gesetzt leider keine Änderung. Im iobroker Log sieht man noch was komisches. Immer wenn er diese Syntaxfehlermeldung hat, verliert der homeeAPI Node die Verbindung und für ein Bruchteil einer Sekunde sind die virtuellen Geräten im echten homee zu sehen (in der IOS App).

Das muss ich mir morgen Mal in Ruhe angucken. Coole Sache auf jeden Fall!

Ist evtl eine blöde Anmerkung, aber warum stehen unter Deiner Geräte-ID im homeeApi node auch Buchstaben? Dürfen hier nicht nur Zahlen stehen??? :man_shrugging:

HI @Sofasportler, danke für den Hinweis. Gerade angepasst, leider werden immer noch die virt.
Geräte im echten homee ausgegraut.

Meine Versionen:
Node-Red Adapter auf dem iobroker: 2.1.0
Node JS: v12.21.0
node-red-contrib-homee: 0.8.1

image

Finden sich in den config Nodes noch irgendwelche Karteileichen?

Hast du mal versucht den aktuellen vh zu löschen (in den config nodes), dann deploy und dann einen neuen virtuellen homee anzulegen und mit deinen Geräten zu verknüpfen

Hi @medicus07, danke für den Tipp. API node (und alle zugehörigen Nodes) gelöscht, deployed. Refresh im Browser, Nodes neu angelegt, leider das gleiche Ergebnis

Ist der Fehler evtl. erst aufgetreten, seitdem Du diese Anpassung vorgenommen hast?
Habe jetzt nicht alle Topics gelesen…

Hallo zusammen,

werden die Node Red Anfragen hier eigentlich „besser“ gesehen, als in den einzelnen Themen?

Ich habe da nämlich eine Frage zum Thema Node Red und Sonos.

Evtl. kann sich das ja mal jemand ansehen?
https://community.hom.ee/t/sonos-tts-sprachausgabe-in-homee-nutzen-nodered-polly-webhooks/24335/23?u=shadow31

Danke vorab.

Hi, tatsächlich habe ich diese Änderungen gar nicht durchgeführt. Diese sind nicht verspflichtend, oder? Mein Verständnis war optional.

Wenn du den globalen Kontext aktivierst, dann schon :wink:

Mist

HI @medicus07,

Einstellungen in der settings hinzugefügt
den NR Adapter am IO gestoppt und neugestartet
API node wieder aktiviert/deployed.

MIr ist folgendes aufgefallen:
Ich habe mal ein virt. Gerät gelöscht, neu gesucht im virt. homee, neu hinzugefügt. Der war als einziger nicht ausgegraut.

Nach Minuten aber das gleiche Bild -> alle virt. Geräte sind wieder ausgegraut. Das passiert gleichzeitig mit diesem Fehler aus dem IO Log aus dem weiter oberen Post. Ich bin kurz davor den Pi platt zu machen. :face_with_symbols_over_mouth:

image

Nee ich hab das seit Anfang an ohne laufen - ohne Probleme

Also globaler context ist eingeschaltet, aber ohne speichern im Festspeicher.

1 „Gefällt mir“

Ich habe dasselbe Problem seit längerer Zeit. Meiner Erfahrung nach ist es egal, ob globaler Kontext mit und ohne Festplattenspeicher aktiviert ist.
Ich hatte nach dem ersten Auftreten des Problems alle Geräte neu eingelernt - dann war wieder Ruhe.
Nach dem letzten Update von NodeRed trat dasselbe Problem erneut auf.
Wenn hier also jemand einen Hinweis auf die Ursache „unseres“ Problems hat, wäre ich sehr dankbar.

Node.js 12.22.1
NodeRed 2.2.0
node-red-contrib-homee 0.8.1