Home Connect und Node Red

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

walko
Beiträge: 12
Registriert: 04.10.2019, 18:16

Home Connect und Node Red

Beitrag von walko » 21.02.2021, 18:19

Hallo

ich habe einige Fragen zu dieser Kombi.

Zur Technik. Ich habe Node in einer Ubuntu-Installation auf einer VM laufen.
Die einschlägigen Webseiten und Forumeinträge habe ich gelesen.

Wie weit bin ich:

1. Node für HomeConnect ist installiert.
2. Anmeldung im Portal ist okay
3. ID, Secret und Callback eingetragen
4. Start authorization --> Zulassen --> Antwort ok.
5. an den Nodes steht ready.

Nun zu meinen Fragen:

1. In fast allen Dokus sind drei nodes vorhanden. Ich habe nur 2, request und event.
2. Auf einer Seite habe ich gelesen "Gerät init" anklicken Ich habe den Eintrag nicht gefunden.
3. Nach Geräten scannen! Geht das nur über Code oder müssten die angezeigt werden? (bei mir steht an den Nodes ready statt connect).
4. Ich brauchen die HAID der einzelnen Geräte. Werden die angezeigt oder eher über den Code. (Wenn ich die Seriennummer eintrage, kommt auch nur ready)

Trage ich die SN ein kommt "{"type":"error","status":403,"message":"Forbidden"}".

Entweder habe ich irgendetwas übersehen oder einen Fehler begangen. Vielleicht hat jemand eine Idee, denn ich hänge an dieser Stelle fest.

Besten Dank für die Unterstützung

Viele Grüße
Jens

walko
Beiträge: 12
Registriert: 04.10.2019, 18:16

Re: Home Connect und Node Red

Beitrag von walko » 08.03.2021, 15:43

Hallo,

ich suche immer noch, wie ich HAID rausbekomme?


Ich habe die Nummer über

/homeappliances Get all home appliances which are paired with the logged-in user account.

über die API versucht zu holen.

Obwohl oben Authorize steht kommt die Meldung:
Code Details
401 Error: Unauthorized

Versuche ich in der API neu zu autorisieren, dann kommt:

{
"error": "unauthorized_client",
"error_description": "client or redirection URI not authorized",

obwohl ich auf Start ... gegangenen bin.

Irgendwie laufe ich in die Irre. Hat jemand eine Idee?

Danke Jens

cityofsilence
Beiträge: 269
Registriert: 14.11.2018, 20:43
System: CCU
Wohnort: Bayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 17 Mal

Re: Home Connect und Node Red

Beitrag von cityofsilence » 08.03.2021, 16:23

Gruß André

walko
Beiträge: 12
Registriert: 04.10.2019, 18:16

Re: Home Connect und Node Red

Beitrag von walko » 08.03.2021, 16:30

Hallo André,

danke für die Antwort. Dies hatte ich mir aber schon durchgearbeitet.

Mein Fehler muss irgendwo anders liegen.
Der Fehler kommt auf der api-Seite.
Screenshot 2021-03-08 162959.png
Viele Grüße Jens.

totti1171
Beiträge: 123
Registriert: 02.11.2008, 10:28
System: Alternative CCU (auf Basis OCCU)
Wohnort: Drebkau
Danksagung erhalten: 1 Mal

Re: Home Connect und Node Red

Beitrag von totti1171 » 28.07.2021, 20:07

Was hast Du denn im Node hinterlegt?

Ich komme zwar auch nicht weiter, kann aber zumindest meine Geräte mit dem Scope "IdentifyAppliance" auslesen.
rrr.jpg
eee.jpg

totti1171
Beiträge: 123
Registriert: 02.11.2008, 10:28
System: Alternative CCU (auf Basis OCCU)
Wohnort: Drebkau
Danksagung erhalten: 1 Mal

Re: Home Connect und Node Red

Beitrag von totti1171 » 30.07.2021, 14:48

Kann mir jemand sagen welchen Scope ich wo eingeben muss?

Am liebsten wäre mir ein vollständiger Flow... :shock:

totti1171
Beiträge: 123
Registriert: 02.11.2008, 10:28
System: Alternative CCU (auf Basis OCCU)
Wohnort: Drebkau
Danksagung erhalten: 1 Mal

Re: Home Connect und Node Red

Beitrag von totti1171 » 27.08.2021, 13:55

Hat jemand einen fertigen flow?

totti1171
Beiträge: 123
Registriert: 02.11.2008, 10:28
System: Alternative CCU (auf Basis OCCU)
Wohnort: Drebkau
Danksagung erhalten: 1 Mal

Re: Home Connect und Node Red

Beitrag von totti1171 » 06.11.2021, 19:00

Hatte bitte jemand mal einen Flow für mich, den ich anpassen könnte? Please....

totti1171
Beiträge: 123
Registriert: 02.11.2008, 10:28
System: Alternative CCU (auf Basis OCCU)
Wohnort: Drebkau
Danksagung erhalten: 1 Mal

Re: Home Connect und Node Red

Beitrag von totti1171 » 02.12.2021, 11:14

Hallo Zusammen,

leider bin ich an dieser Stelle noch nicht weiter gekommen :|
screen1.jpg
Die Geräte sind abrufbar - mit dem Scope "IdentifyAppliance" - mehr bekomme ich nicht hin.
node.jpg
payload.jpg
Kann mit jemand ein Beispiel geben, was ich zum abfragen der Geräte (Status) tun muss?


Besten Dank!

cityofsilence
Beiträge: 269
Registriert: 14.11.2018, 20:43
System: CCU
Wohnort: Bayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 17 Mal

Re: Home Connect und Node Red

Beitrag von cityofsilence » 03.12.2021, 10:00

Hey hier ein Auszug am Beispiel Siemens Geschirrspühler nicht schön aber es funktioniert.
Ist auf alle Fälle noch Luft nach oben :D
HAID habe ich entfernt aber ich denke am Aufbau ist die Funktion ersichtlich wie du zu einem Ergebnis kommen kannst.
Weiter bin ich aktuell aus Zeitgründen auch noch nicht gekommen, vielleicht hilft es dir etwas weiter bei deinem Problem zu kommen.

Code: Alles auswählen

[
    {
        "id": "7bfadbcd.fd69dc",
        "type": "home-connect-event",
        "z": "727cc375.c5863c",
        "auth": "715d6111.5718c",
        "name": "",
        "haid": "",
        "x": 480,
        "y": 320,
        "wires": [
            [
                "661743df.8af34c"
            ]
        ]
    },
    {
        "id": "f3850b61.a66fe",
        "type": "home-connect-request",
        "z": "727cc375.c5863c",
        "auth": "",
        "name": "",
        "tag": "default",
        "operationId": "get_home_appliances",
        "haid": "",
        "body": "",
        "optionkey": "",
        "programkey": "",
        "settingkey": "",
        "statuskey": "",
        "imagekey": "",
        "x": 500,
        "y": 380,
        "wires": [
            []
        ]
    },
    {
        "id": "f2f1050f.c228b8",
        "type": "inject",
        "z": "727cc375.c5863c",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 290,
        "y": 400,
        "wires": [
            [
                "f3850b61.a66fe"
            ]
        ]
    },
    {
        "id": "b64083d1.e7d908",
        "type": "function",
        "z": "727cc375.c5863c",
        "name": "Programm Laufzeit in %",
        "func": "if (msg.payload.key === \"BSH.Common.Option.ProgramProgress\"){\nmsg.payload = msg.payload.value}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 710,
        "y": 240,
        "wires": [
            [
                "87646dd2.0f5d38"
            ]
        ]
    },
    {
        "id": "78f7dfde.dee248",
        "type": "function",
        "z": "727cc375.c5863c",
        "name": "Programm Laufzeit in Min",
        "func": "msg.payload = msg.payload.value / 60;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 750,
        "y": 280,
        "wires": [
            [
                "d948f873.6223a"
            ]
        ]
    },
    {
        "id": "87646dd2.0f5d38",
        "type": "ui_level",
        "z": "727cc375.c5863c",
        "group": "3510e515.04cb7a",
        "order": 3,
        "width": 0,
        "height": 0,
        "name": "",
        "label": "Fortschritt %",
        "colorHi": "#e60000",
        "colorWarn": "#ff9900",
        "colorNormal": "#00b33c",
        "colorOff": "#595959",
        "min": 0,
        "max": 100,
        "segWarn": "",
        "segHigh": "",
        "unit": "",
        "layout": "sh",
        "channelA": "",
        "channelB": "",
        "decimals": 0,
        "animations": "soft",
        "shape": "3",
        "colorschema": "rainbow",
        "textoptions": "default",
        "colorText": "#eeeeee",
        "fontLabel": "",
        "fontValue": "",
        "fontSmall": "",
        "colorFromTheme": true,
        "textAnimations": false,
        "hideValue": false,
        "tickmode": "auto",
        "peakmode": false,
        "property": "payload",
        "peaktime": 3000,
        "x": 930,
        "y": 240,
        "wires": []
    },
    {
        "id": "d948f873.6223a",
        "type": "ui_text",
        "z": "727cc375.c5863c",
        "group": "3510e515.04cb7a",
        "order": 2,
        "width": 0,
        "height": 0,
        "name": "",
        "label": "Restlaufzeit in Minuten: ",
        "format": "{{msg.payload}}",
        "layout": "row-spread",
        "className": "",
        "x": 1050,
        "y": 300,
        "wires": []
    },
    {
        "id": "661743df.8af34c",
        "type": "switch",
        "z": "727cc375.c5863c",
        "name": "",
        "property": "payload.key",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "BSH.Common.Option.RemainingProgramTime",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "BSH.Common.Option.ProgramProgress",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "BSH.Common.Event.ProgramFinished",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "BSH.Common.Status.OperationState",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "BSH.Common.Root.ActiveProgram",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "BSH.Common.Status.DoorState",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 6,
        "x": 690,
        "y": 360,
        "wires": [
            [
                "78f7dfde.dee248"
            ],
            [
                "b64083d1.e7d908"
            ],
            [
                "78c30a8e.c88324"
            ],
            [
                "c77c9a79.6b46d8"
            ],
            [
                "b0f617e.ce511e8"
            ],
            [
                "3d7a9992.226d8e"
            ]
        ]
    },
    {
        "id": "62c21b87.51ac8c",
        "type": "ui_switch",
        "z": "727cc375.c5863c",
        "name": "",
        "label": "Geschirrspühler läuft / fertig",
        "tooltip": "",
        "group": "3510e515.04cb7a",
        "order": 1,
        "width": "0",
        "height": "0",
        "passthru": false,
        "decouple": "true",
        "topic": "",
        "topicType": "str",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "fa-power-off fa-2x aria-hidden=\"true\"",
        "oncolor": "green",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "fa-power-off fa-2x aria-hidden=\"true\"",
        "offcolor": "red",
        "animate": true,
        "className": "",
        "x": 1140,
        "y": 340,
        "wires": [
            []
        ]
    },
    {
        "id": "78c30a8e.c88324",
        "type": "change",
        "z": "727cc375.c5863c",
        "name": "false",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 950,
        "y": 380,
        "wires": [
            [
                "62c21b87.51ac8c"
            ]
        ]
    },
    {
        "id": "8d398596.341d48",
        "type": "change",
        "z": "727cc375.c5863c",
        "name": "true",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 950,
        "y": 340,
        "wires": [
            [
                "62c21b87.51ac8c"
            ]
        ]
    },
    {
        "id": "c77c9a79.6b46d8",
        "type": "switch",
        "z": "727cc375.c5863c",
        "name": "",
        "property": "payload.value",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "BSH.Common.EnumType.OperationState.Run",
                "vt": "str"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 830,
        "y": 340,
        "wires": [
            [
                "8d398596.341d48"
            ],
            []
        ]
    },
    {
        "id": "b0f617e.ce511e8",
        "type": "switch",
        "z": "727cc375.c5863c",
        "name": "",
        "property": "payload.key",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "BSH.Common.Root.ActiveProgram",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 830,
        "y": 400,
        "wires": [
            [
                "b5420f64.ab5b8"
            ]
        ]
    },
    {
        "id": "3d7a9992.226d8e",
        "type": "switch",
        "z": "727cc375.c5863c",
        "name": "",
        "property": "payload.value",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "BSH.Common.EnumType.DoorState.Closed",
                "vt": "str"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 790,
        "y": 480,
        "wires": [
            [
                "2f08ad93.55d0f2"
            ],
            [
                "b420acc2.5cb16"
            ]
        ]
    },
    {
        "id": "2f08ad93.55d0f2",
        "type": "change",
        "z": "727cc375.c5863c",
        "name": "true",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 950,
        "y": 480,
        "wires": [
            [
                "df75a6cb.de5c88"
            ]
        ]
    },
    {
        "id": "b420acc2.5cb16",
        "type": "change",
        "z": "727cc375.c5863c",
        "name": "false",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 950,
        "y": 520,
        "wires": [
            [
                "df75a6cb.de5c88"
            ]
        ]
    },
    {
        "id": "df75a6cb.de5c88",
        "type": "ui_switch",
        "z": "727cc375.c5863c",
        "name": "",
        "label": "Geschirrspühler Tür auf / zu",
        "tooltip": "",
        "group": "3510e515.04cb7a",
        "order": 1,
        "width": "0",
        "height": "0",
        "passthru": false,
        "decouple": "true",
        "topic": "",
        "topicType": "str",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "fa-power-off fa-2x aria-hidden=\"true\"",
        "oncolor": "green",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "fa-power-off fa-2x aria-hidden=\"true\"",
        "offcolor": "red",
        "animate": true,
        "className": "",
        "x": 1140,
        "y": 500,
        "wires": [
            []
        ]
    },
    {
        "id": "b5420f64.ab5b8",
        "type": "function",
        "z": "727cc375.c5863c",
        "name": "",
        "func": "var text;\ntext = msg.payload.value ;\nmsg.payload = text.split('.')[3].substr(0,15);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 980,
        "y": 420,
        "wires": [
            [
                "1beaf3f0.e2387c"
            ]
        ]
    },
    {
        "id": "1beaf3f0.e2387c",
        "type": "ui_text",
        "z": "727cc375.c5863c",
        "group": "3510e515.04cb7a",
        "order": 2,
        "width": 0,
        "height": 0,
        "name": "",
        "label": "Aktives Programm: ",
        "format": "{{msg.payload}}",
        "layout": "row-spread",
        "className": "",
        "x": 1150,
        "y": 420,
        "wires": []
    },
    {
        "id": "715d6111.5718c",
        "type": "home-connect-auth",
        "name": "",
        "simulation_mode": false,
        "scope": "IdentifyAppliance Dishwasher",
        "callback_url": "http://192.168.123.40/addons/red/homeconnect/auth/callback"
    },
    {
        "id": "3510e515.04cb7a",
        "type": "ui_group",
        "name": "Geschirrspühler",
        "tab": "c99335cd.a8c168",
        "order": 6,
        "disp": true,
        "width": "6",
        "collapse": false,
        "className": ""
    },
    {
        "id": "c99335cd.a8c168",
        "type": "ui_tab",
        "name": "Leistungs-/Messwertdaten",
        "icon": "dashboard",
        "order": 10,
        "disabled": false,
        "hidden": false
    }
]
Gruß André

Antworten

Zurück zu „RedMatic“