Mal wieder virtuelle Geräte - jetzt aber richtig!

Versuche bitte mal anstelle des Namens des virtuellen homee die IP Adresse des Node-RED Hosts beim Verbindungsvorgang einzugeben.

1 „Gefällt mir“

Hallo Stefan,

Der Tipp mit der Ip-Adresse war die Lösung…
Damit klappt die Verbindung wieder. :slightly_smiling_face::slightly_smiling_face::slightly_smiling_face:.
Vielen Dank für die Lösung des Verbindungsproblems.

Allerdings „kennt“ der homee die hih-Geräte nun nicht mehr. Mir werden nun meine knapp 80 Geräte zur Neu-Anlage angeboten…

Kann ich mir das noch irgendwie ersparen oder bleibt mir nur die Neuanlage der Geräte (inkl. Umbenennen, Homeegramme ändern usw)?

Vlg

Du kannst die Geräte auch ganz einfach im homee ersetzen. Dafür müssen aber alle Geräte noch im homee vorhanden sein (alle alten und die neuen Geräte).

Das geht Recht einfach mit einer Funktion. Damit werden alle HG, Gruppen etc aktualisiert.

3 „Gefällt mir“

Oha…das hatte ich in den letzten Monaten gar nicht wahrgenommen, dass @Micha weder mal gezaubert hat.

Auch wenn es wohl Zeit kosten wird den Ist-Zustand von letzter Woche wieder herzustellen, mit dem Tool gehts wohl wesentlich schneller und komfortabler.

@memooo: Danke für den Hinweis/Link.

2 „Gefällt mir“

Es gibt verschiedene flows daher musst du schauen welcher der richtig für dich ist.
Gerade für diese Situation habe ich den zweiten Teil des Flows erstellt.

Dann brauchst du nur alle Geräte mit einer neuer vhih Id anlernen und mit einen Klick werden alle vhih 1 zu 1 ersetzt.

VG

2 „Gefällt mir“

@Steffen hier gibt anscheindend ein Problem mit dem Update.

Es kann ja nicht sein das bei jedem Wechsel der IP-Adresse alle Geräte im „Master“-homee verloren gehen.

1 „Gefällt mir“

Tatsächlich habe ich gerade eben gemerkt, dass mein Problem noch immer nicht wirklich aus der Welt ist: mein homee „vergisst“ weiterhin die Zugangsdaten des vHih. Trotz des vorher angelernten „neuen“ Gerät.
Wenn ich nun die Ip-Adresse und Zugangsdaten erneut eingebe, ist das Gerät wieder als neues verfügbar und neu anzulegen. Ich kann also eigentlich weiterhin nicht mit den Geräten über VHih arbeiten, wenn diese nach einer Zeit wieder „nicht verfügbar“ sind.
Ich habe ernsthaft schon wieder über ein downgrade auf die 2.33er homee- Version nachgedacht, was aber ja keinen Sinn macht, wenn bei euch allen hih reibungslos auch mit der 2.34 läuft.

Habt ihr noch eine Idee ?

Vg

Nein das passiert auch nicht. Das war ein anderes Problem, man konnte keinen homee mehr über dessen IP-Adresse hinzufügen bzw. konnte es da zu einem Absturz kommen.

Wenn beim Verbinden die IP-Adresse eingeben wird, dann fragt der Master den Slave nach seiner ID und nutzt diese im Falle eines IP-Wechsels.

@Starbuck30 kannst mir ja mal den Supportzugang in einer PN schicken, dann check ich das mal :wink:

1 „Gefällt mir“

Funktioniert der umgekehrte Fall?
Beispiel: Slave homee ist kaputt, ich spiele das Backup in einen neuen Brain ein und starte ihn unter der gleichen IP. Jetzt ist die ID vom Slave anders, alles andere inkl. IP aber identisch zum alten Slave.
Funktionieren die Geräte im Master dann immer noch /wieder oder ist alles kaputt?

Nein das geht bislang nicht und wird kaputt gehen :see_no_evil: Vermutlich ist der WebSocket-Zugang noch gültig und es kommt eine Verbindung zustande, aber alle Nachrichten würden als fehlgeschlagen interpretiert.

Verständnisfrage:
Wenn es zu einem Wechsel einer IP-Adresse kommt, und die Verbindung hih dann über die ID stattfindet, läuft die Verbindung dann wieder über den Proxy?

Ne, da wird die neue IP über UDP-Broadcasts ermittelt.

2 „Gefällt mir“

Kann mir jemand sagen mit welchem Geräteprofil der Eurotronic Luftgütesensor arbeitet und welche Attributte-ID für den VOC-Gehalt und den VOC-Wert heran gezogen werden. Ich finde da in der Liste auf die Schnelle nichts Passendes.
Nachdem der Sensor ja leider nicht so toll sein soll, wollte ich vhih mal einen anderen Sensor einbinden.

So sollte ja das Profil von Eurotronic aussehen:

Hast du den Sensor im Einsatz ?
Dann kannst du dir die kompletten Attribute vom homee ziehen.

Nein, in dem Fall leider nicht :wink:

Die Enums muss aktualisiert werden, da nicht alle Werte vorhanden sind. Ich schau nochmal nach dem genauen Profil.

Habe die Enums auf Github erneuert und das muss @stfnhmplr noch freigeben.
Damit kannst du einen Luftgütesensor abbilden.

3 „Gefällt mir“

Hallo zusammen, ich hab mir die Aeotec Sirene Gen 5, in der falschen Annahme gekauft, dass ich über homee alle 5 Töne für unterschiedliche Szenarien verwenden kann :man_shrugging:manchmal sollte man einfach nicht meinen sondern fragen…
Bevor ich mir jetzt extra ein z-wave shild kaufe, erstmal die Frage, ist das über NodeRed und vhih möglich und hat da schon jemand einen Flow dafür?

Hey @Maddes,
wenn du die Töne per Parameter abspielen kannst dann geht das problemlos.
Einfach ein Gerät bauen das dann die 5 Töne abspielen kann.

Dazu werden dann beim schalten des Gerätes die Parameter an homee gesendet um so den Ton abzuspielen.

So könnte dann ein Befehl an den homee aussehen.

PUT:nodes/908?configure=1&parameter=40&byte_size=1&value=1

Hier ein Beispiel für einen Aeon LED Strips

[
    {
        "id": "ba34b1fa.a4d58",
        "type": "homeeDevice",
        "z": "76b6d694.226ff8",
        "virtual-homee": "",
        "name": "Aeon Modus Switch",
        "nodeId": "145",
        "showNodeId": true,
        "profile": "1004",
        "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": 1618602109,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 145,
                "node_id": 145
            },
            {
                "type": 1,
                "state": 1,
                "instance": 1,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "last_changed": 1618602111,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 146,
                "node_id": 145
            },
            {
                "type": 1,
                "state": 1,
                "instance": 2,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "last_changed": 1618602112,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 147,
                "node_id": 145
            },
            {
                "type": 1,
                "state": 1,
                "instance": 3,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "last_changed": 1618602114,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 148,
                "node_id": 145
            },
            {
                "type": 1,
                "state": 1,
                "instance": 4,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "last_changed": 1618603848,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 149,
                "node_id": 145
            },
            {
                "type": 2,
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 2147483647,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "last_changed": 1618603869,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 150,
                "node_id": 145
            }
        ],
        "statusTemplate": "",
        "x": 330,
        "y": 1580,
        "wires": [
            [
                "e7554237.21386"
            ]
        ]
    },
    {
        "id": "e7554237.21386",
        "type": "function",
        "z": "76b6d694.226ff8",
        "name": "",
        "func": "if (msg.payload.attributeId == 145){\n    if (msg.payload.targetValue == 1){\n        return [\n            {payload: \"PUT:nodes/908?configure=1&parameter=40&byte_size=1&value=1\"},\n             {payload:{\n                 attributes:[\n                     {id:146,value:0},\n                     {id:147,value:0},\n                     {id:148,value:0},\n                     {id:149,value:0}\n                ]\n             }\n            }\n        ]\n    }\n    else if (msg.payload.targetValue == 0){\n        return {\n        payload: \"put:nodes/908/attributes/2376?target_value=0\"\n        }\n    }\n}\nelse if (msg.payload.attributeId == 146){\n    if (msg.payload.targetValue == 1){\n         return [\n            {payload: \"PUT:nodes/908?configure=1&parameter=40&byte_size=1&value=2\"},\n             {payload:{\n                 attributes:[\n                     {id:145,value:0},\n                     {id:147,value:0},\n                     {id:148,value:0},\n                     {id:149,value:0}\n                ]\n             }\n            }\n        ]\n    }\n    else if (msg.payload.targetValue == 0){\n        return {\n            payload: \"put:nodes/908/attributes/2376?target_value=0\"\n        }\n    }\n}\nelse if (msg.payload.attributeId == 147){\n    if (msg.payload.targetValue == 1){\n        return [\n            {payload: \"PUT:nodes/908?configure=1&parameter=40&byte_size=1&value=3\"},\n             {payload:{\n                 attributes:[\n                     {id:146,value:0},\n                     {id:145,value:0},\n                     {id:148,value:0},\n                     {id:149,value:0}\n                ]\n             }\n            }\n        ]\n    }\n    else if (msg.payload.targetValue == 0){\n        return {\n            payload: \"put:nodes/908/attributes/2376?target_value=0\"\n        }\n    }\n}\nelse if (msg.payload.attributeId == 148){\n    if (msg.payload.targetValue == 1){\n        return [\n            {payload: \"PUT:nodes/908?configure=1&parameter=40&byte_size=1&value=4\"},\n             {payload:{\n                 attributes:[\n                     {id:146,value:0},\n                     {id:147,value:0},\n                     {id:145,value:0},\n                     {id:149,value:0}\n                ]\n             }\n            }\n        ]\n    }\n    else if (msg.payload.targetValue == 0){\n        return {\n            payload: \"put:nodes/908/attributes/2376?target_value=0\"\n        }\n    }\n}\nelse if (msg.payload.attributeId == 149){\n    if (msg.payload.targetValue == 1){\n         return [\n            {payload: \"PUT:nodes/908?configure=1&parameter=40&byte_size=1&value=5\"},\n             {payload:{\n                 attributes:[\n                     {id:146,value:0},\n                     {id:147,value:0},\n                     {id:148,value:0},\n                     {id:145,value:0}\n                ]\n             }\n            }\n        ]\n    }\n    else if (msg.payload.targetValue == 0){\n        return {\n            payload: \"put:nodes/908/attributes/2376?target_value=0\"\n        }\n    }\n}\nelse if (msg.payload.attributeId == 150){\n    if (msg.payload.targetValue > 1){\n        return {\n            payload: \"PUT:nodes/908?configure=1&parameter=39&byte_size=4&value=\"+msg.payload.targetValue\n        }\n    }\n    else if (msg.payload.targetValue == 0){\n        return {\n            payload: \"put:nodes/908/attributes/2376?target_value=0\"\n        }\n    }\n}",
        "outputs": 2,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 1580,
        "wires": [
            [
                "9c76c109.81e58"
            ],
            [
                "ba34b1fa.a4d58"
            ]
        ]
    },
    {
        "id": "9c76c109.81e58",
        "type": "link out",
        "z": "76b6d694.226ff8",
        "name": "",
        "links": [
            "e204158a.3c9808"
        ],
        "x": 685,
        "y": 1580,
        "wires": []
    }
]
5 „Gefällt mir“

Danke @Micha dann geh ich mal shoppen :grin:.
Ist das Razberry von Z-wave.me ok? Bevor ich den nächsten semioptimalen Kauf tätige.