Mal wieder virtuelle Geräte - jetzt aber richtig!

Entschuldigt, wenn es eine dumme Frage ist, aber ich bin derzeit eher ein Neuling in Bezug auf Homee: Inwiefern macht es überhaupt Sinn, Red-Node parallel zu Homee zu installieren? Wenn ich das richtig verstehe ist Red-Node ja, so wie Homee, ein eigenes Gateway, welches auf Homee nicht angewiesen ist. Wenn ich eh ein Zweitsystem nebenher aufsetzen muss, bräuchte ich Homee doch eigentlich gar nicht mehr. Ein wenig Hardware angestöpselt um die unterschiedlichen Protokolle zu haben und schon kann ich doch ein System abschalten. Wenn ich x Gateways parallel betreiben muss, dann brauche ich auch keinen „Allrounder“ , welcher wiederum nicht den aktuellen Markt abdecken kann. Oder habe ich einen Denkfehler?

Wenn Du die ganze Bedinung und Logik in NodeRed erledigen kannst und willst, dann wäre das sicher für Dich eine Alternative.

Im Gegensatz zu Homee mit den Homeegrammen ist die Umsetzung in NR/IOBroker doch eher kompliziert. Ein Homeegramm ist, vor allem bei mehreren Triggern und Aktionen, leichter und schneller erstellt, als ein Flow. Aber ein Homeegramm kann leider, wegen vieler nicht unterstützter Geräte aber auch nicht dafür gemachten Geräte (TV, Alexa, etc.) nicht alles.

Bei mir steht der PI auch in einem Serverschrank. Wenn ich den mit Hardware für ZigBee, Z-Wave und Enocean aufrüsten würde, weiß ich gar nicht wie stabil die Kommunikation noch wäre. Würde vielleicht erst noch Repeater benötigen.

NR dient, zumindest mir, im Grunde nur um Geräte, die nicht homee kompatibel sind, dennoch per Homee steuern zu können. Ganz grob betrachtet stellt NR/IOBroker bei mir im Grunde nichts anders als einen weiteren Würfel dar, der homme Befehle an alles andere schicken kann.

2 „Gefällt mir“

Mit einer zusätzlichen Stromversorgung, Wartungs - / Pflegeaufwand. Erhöhte Fehlersuche, zusätzlichen Kabeln, zusätzlicher Platz … Derzeit ist Homee in kurzer Zeit das 3 GW/Controller, weil ich eben nur ein System bedienen möchte- nicht weil ich das Andere nicht könnte … Ich hoffe ja, das Homee für meine Ansprüche ausreichend sein wird… ansonsten muss Lösung 4 kommen

Das möchte ich mal so nicht unkommentiert stehen lassen.

Ich habe neben homee jetzt auch einen Raspberry (8GB RAM & 64Bit OS) mit iobroker, node-red und Z-Wave-Stick.
Dadurch, dass ich mit dem Z-Wave-Stick am Raspberry jetzt viel mehr Möglichkeiten habe (Geräte miteinander verknüpfen, Scenen etc.) brauche ich jetzt für die Lichtsteuerung nur noch ein sehr kurzes Blockly-Script pro Raum um das gleiche Ergebnis zu haben, was ich vorher mit weit über 10 HGs (allein für Lichtsteuerung in Küche und Flur) in homee hatte.
Und so ein Blockly-Script ist genauso einfach zusammengeklickt wie ein HG.
Über kurz oder lang wird der Raspberry (dann noch mit Enocean-Modul) wohl meine Hauptzentrale werden und homee wandert als Extender oder so in den Keller.

Die Restful-Api im iobroker trägt dann auch noch dazu bei, dass ich Aktoren direkt über webrequest/webhooks steuern kann ohne erst ein HG anlegen zu müssen.

Stand heute würde ich homee ehrlich gesagt nicht weiter empfehlen.

2 „Gefällt mir“

Das Problem bei allen smart Home Zentralen ist, es gibt keine eierlegende Wollmilchsau.
Wenn du maximale Funktionalität und Kompatibilität haben willst, bleibt dir gar nichts anderes übrig, wie mehrere Systeme mit einem Koordinator zu kombinieren.
Bei mit werkeln im Moment 6 Zentralen, die aber in Kombination nahezu alle auf dem Markt erhältlichen Geräte und Funktionen unterstützen.

1 „Gefällt mir“

Eure Diskussion ist nicht passend in diesem Thread. Hier geht es um vhih und nicht um Zentrale xyz oder dergleichen.

11 „Gefällt mir“

Hallo zusammen,

ich habe leider einige Probleme bei meiner Kombination von HUE und Node Red und hoffe auf etwas Hilfe bzw. ein paar Denkanstöße.

Was bisher funktioniert:
Lampen sind im Node Red als auch im homee eingebunden. Ändere ich werte über die HUE App kann ich die Änderungen im NR und im homee sehen. Wenn ich jedoch den Zustand einer Lampe über homee setzen, z.B. An/Aus wird dieser Wert direkt wieder überschrieben, heißt: Der „Schalter“ in der homee Oberfläche springt kurz auf An und direkt wieder auf aus.
Hat jemand eine Idee, woran das liegen könnte??

Wie sieht dein virtuelles Gerät im NodeRed aus? Hast mal ein Bild? Vor allem von diesem An/Aus Attribut?

Und der Flow als Bild und bei Bedarf auch gerne als Code falls da jemand drüber schauen soll.

Hi, vielen Dank für Eure Hilfe!

Hier die virtuellen Geräte im NR:

Gebt mir gerne Bescheid, falls noch etwas fehlt.

Kommt mir so bekannt vor :joy::crazy_face:.
Zeig mal bitte den Inhalt der Funktion nach dem hue node oder gleich den flow als Code
</> Button benutzen und den Code einfügen.

Wunder mich nicht, ich habe mich sehr oft an deinen Ideen bedient :wink:

[
    {
        "id": "2562c7ccd13325ba",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "acb77823eda5d856",
        "type": "function",
        "z": "2562c7ccd13325ba",
        "name": "RGB Funktion",
        "func": "if (msg.payload.attributeId === 63){\nvar zahl= msg.payload.targetValue;\nvar ausgabe =\"\";\nrest(i = zahl%16);\nzahl6 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl5 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl4 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl3 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl2 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl);\nzahl1 = ausgabe;\n\nausgabe2 = zahl1+zahl2+zahl3+zahl4+zahl5+zahl6;\n    node.send({payload:{\"hex\":ausgabe2}});\n}\n\nfunction rest(){\n    switch(i)\n\t\t{\n\t\t    \n\t\tcase 1: ausgabe =\"1\";break;\n\t\tcase 2: ausgabe =\"2\";break;\n\t\tcase 3: ausgabe = \"3\";break;\n\t\tcase 4: ausgabe= \"4\";break;\n\t\tcase 5: ausgabe= \"5\";break;\n\t\tcase 6: ausgabe = \"6\";break;\n\t\tcase 7: ausgabe =\"7\";break;   \n\t\tcase 8: ausgabe = \"8\";break;\n\t\tcase 9: ausgabe = \"9\";break;\n\t\tcase 10: ausgabe =\"A\"; break;\n\t\tcase 11: ausgabe = \"B\"; break;\n\t\tcase 12: ausgabe  = \"C\"; break;\n\t\tcase 13: ausgabe =\"D\"; break;\n\t\tcase 14: ausgabe =\"E\"; break;\n\t\tcase 15: ausgabe =\"F\"; break;\n}}\n\nif (msg.payload.attributeId === 60){node.send({payload:{\"on\":msg.payload.targetValue}})}\nif (msg.payload.attributeId === 61){node.send({payload:{\"brightness\":msg.payload.targetValue}})}\nif (msg.payload.attributeId === 62){node.send({payload:{\"colorTemp\":msg.payload.targetValue}})}\n",
        "outputs": 1,
        "noerr": 0,
        "x": 520,
        "y": 120,
        "wires": [
            [
                "69289287975d01ae"
            ]
        ]
    },
    {
        "id": "faeb8d56d2534c0d",
        "type": "switch",
        "z": "2562c7ccd13325ba",
        "name": "",
        "property": "payload.reachable",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 890,
        "y": 120,
        "wires": [
            [
                "a398731665fa3d05"
            ]
        ]
    },
    {
        "id": "a398731665fa3d05",
        "type": "function",
        "z": "2562c7ccd13325ba",
        "name": "Rückkanal on off mit Hex",
        "func": "if (msg.payload.on === true) { msg.payload.on = 1 } else msg.payload.on = 0;\nnode.send({ payload: { \"attribute\": { \"id\": 60, \"value\": msg.payload.on } } })\nnode.send({ payload: { \"attribute\": { \"id\": 61, \"value\": msg.payload.brightness } } })\nnode.send({ payload: { \"attribute\": { \"id\": 62, \"value\": msg.payload.colorTemp } } })\nif (msg.payload.hex) {\n    var test = msg.payload.hex.split('');\n    var ausgabe = \"\";\n    umr(i = test[5]);\n    Zahl1 = ausgabe * 1;\n    umr(i = test[4]);\n    Zahl2 = ausgabe * 16;\n    umr(i = test[3]);\n    Zahl3 = ausgabe * 256;\n    umr(i = test[2]);\n    Zahl4 = ausgabe * 4096;\n    umr(i = test[1]);\n    Zahl5 = ausgabe * 65536;\n    umr(i = test[0]);\n    Zahl6 = ausgabe * 1048576;\n    node.send({ payload: { \"attribute\": { \"id\": 63, \"value\": Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 }} })\n}\nfunction umr() {\n    switch (i) {\n        case \"1\": ausgabe = 1; break;\n        case \"2\": ausgabe = 2; break;\n        case \"3\": ausgabe = 3; break;\n        case \"4\": ausgabe = 4; break;\n        case \"5\": ausgabe = 5; break;\n        case \"6\": ausgabe = 6; break;\n        case \"7\": ausgabe = 7; break;\n        case \"8\": ausgabe = 8; break;\n        case \"9\": ausgabe = 9; break;\n        case \"a\": ausgabe = 10; break;\n        case \"b\": ausgabe = 11; break;\n        case \"c\": ausgabe = 12; break;\n        case \"d\": ausgabe = 13; break;\n        case \"e\": ausgabe = 14; break;\n        case \"f\": ausgabe = 15; break;\n    }\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 1090,
        "y": 120,
        "wires": [
            [
                "f94bff24335b597c"
            ]
        ]
    },
    {
        "id": "ebe03c0c91830b04",
        "type": "homeeDevice",
        "z": "2562c7ccd13325ba",
        "virtual-homee": "",
        "name": "Regal",
        "nodeId": "70",
        "showNodeId": true,
        "profile": "1002",
        "icon": "nodeicon_bulb",
        "attributes": [
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "type": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 70,
                "node_id": 70
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "n%2Fa",
                "step_value": 1,
                "editable": 1,
                "type": 2,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 71,
                "node_id": 70
            },
            {
                "instance": 0,
                "minimum": 153,
                "maximum": 500,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "K",
                "step_value": 1,
                "editable": 1,
                "type": 42,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 72,
                "node_id": 70
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 16777215,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "type": 23,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "7001020%3B16419669%3B12026363%3B16525995",
                "id": 73,
                "node_id": 70
            }
        ],
        "statusTemplate": "",
        "x": 290,
        "y": 240,
        "wires": [
            [
                "44a52961b609c81d"
            ]
        ]
    },
    {
        "id": "44a52961b609c81d",
        "type": "function",
        "z": "2562c7ccd13325ba",
        "name": "RGB Funktion",
        "func": "if (msg.payload.attributeId === 73){\nvar zahl= msg.payload.targetValue;\nvar ausgabe =\"\";\nrest(i = zahl%16);\nzahl6 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl5 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl4 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl3 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl%16);\nzahl2 = ausgabe;\nzahl = Math.floor(zahl/16);\nrest(i = zahl);\nzahl1 = ausgabe;\n\nausgabe2 = zahl1+zahl2+zahl3+zahl4+zahl5+zahl6;\n    node.send({payload:{\"hex\":ausgabe2}});\n}\n\nfunction rest(){\n    switch(i)\n\t\t{\n\t\t    \n\t\tcase 1: ausgabe =\"1\";break;\n\t\tcase 2: ausgabe =\"2\";break;\n\t\tcase 3: ausgabe = \"3\";break;\n\t\tcase 4: ausgabe= \"4\";break;\n\t\tcase 5: ausgabe= \"5\";break;\n\t\tcase 6: ausgabe = \"6\";break;\n\t\tcase 7: ausgabe =\"7\";break;   \n\t\tcase 8: ausgabe = \"8\";break;\n\t\tcase 9: ausgabe = \"9\";break;\n\t\tcase 10: ausgabe =\"A\"; break;\n\t\tcase 11: ausgabe = \"B\"; break;\n\t\tcase 12: ausgabe  = \"C\"; break;\n\t\tcase 13: ausgabe =\"D\"; break;\n\t\tcase 14: ausgabe =\"E\"; break;\n\t\tcase 15: ausgabe =\"F\"; break;\n}}\n\nif (msg.payload.attributeId === 70){node.send({payload:{\"on\":msg.payload.targetValue}})}\nif (msg.payload.attributeId === 71){node.send({payload:{\"brightness\":msg.payload.targetValue}})}\nif (msg.payload.attributeId === 72){node.send({payload:{\"colorTemp\":msg.payload.targetValue}})}\n",
        "outputs": 1,
        "noerr": 0,
        "x": 520,
        "y": 240,
        "wires": [
            [
                "11cf12430c2f3dc9"
            ]
        ]
    },
    {
        "id": "5f41f76f669255e2",
        "type": "switch",
        "z": "2562c7ccd13325ba",
        "name": "",
        "property": "payload.reachable",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 890,
        "y": 240,
        "wires": [
            [
                "a6b8992d7926c06b"
            ]
        ]
    },
    {
        "id": "a6b8992d7926c06b",
        "type": "function",
        "z": "2562c7ccd13325ba",
        "name": "Rückkanal on off mit Hex",
        "func": "if (msg.payload.on === true) { msg.payload.on = 1 } else msg.payload.on = 0;\nnode.send({ payload: { \"attribute\": { \"id\": 70, \"value\": msg.payload.on } } })\nnode.send({ payload: { \"attribute\": { \"id\": 71, \"value\": msg.payload.brightness } } })\nnode.send({ payload: { \"attribute\": { \"id\": 72, \"value\": msg.payload.colorTemp } } })\nif (msg.payload.hex) {\n    var test = msg.payload.hex.split('');\n    var ausgabe = \"\";\n    umr(i = test[5]);\n    Zahl1 = ausgabe * 1;\n    umr(i = test[4]);\n    Zahl2 = ausgabe * 16;\n    umr(i = test[3]);\n    Zahl3 = ausgabe * 256;\n    umr(i = test[2]);\n    Zahl4 = ausgabe * 4096;\n    umr(i = test[1]);\n    Zahl5 = ausgabe * 65536;\n    umr(i = test[0]);\n    Zahl6 = ausgabe * 1048576;\n    node.send({ payload: { \"attribute\": {\"id\": 73, \"value\": Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 }} })\n}\nfunction umr() {\n    switch (i) {\n        case \"1\": ausgabe = 1; break;\n        case \"2\": ausgabe = 2; break;\n        case \"3\": ausgabe = 3; break;\n        case \"4\": ausgabe = 4; break;\n        case \"5\": ausgabe = 5; break;\n        case \"6\": ausgabe = 6; break;\n        case \"7\": ausgabe = 7; break;\n        case \"8\": ausgabe = 8; break;\n        case \"9\": ausgabe = 9; break;\n        case \"a\": ausgabe = 10; break;\n        case \"b\": ausgabe = 11; break;\n        case \"c\": ausgabe = 12; break;\n        case \"d\": ausgabe = 13; break;\n        case \"e\": ausgabe = 14; break;\n        case \"f\": ausgabe = 15; break;\n    }\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 1090,
        "y": 240,
        "wires": [
            [
                "ebe03c0c91830b04"
            ]
        ]
    },
    {
        "id": "11cf12430c2f3dc9",
        "type": "hue-light",
        "z": "2562c7ccd13325ba",
        "name": "Regal",
        "bridge": "a163cc3342214ac7",
        "lightid": "9e4beb27-c64c-4c46-b6e5-9209cad5a632",
        "colornamer": true,
        "skipevents": false,
        "initevents": false,
        "x": 690,
        "y": 240,
        "wires": [
            [
                "5f41f76f669255e2"
            ]
        ]
    },
    {
        "id": "f94bff24335b597c",
        "type": "homeeDevice",
        "z": "2562c7ccd13325ba",
        "virtual-homee": "",
        "name": "Flurlicht",
        "nodeId": "60",
        "showNodeId": true,
        "profile": "1002",
        "icon": "nodeicon_bulb",
        "attributes": [
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "type": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": "60",
                "node_id": "60"
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "n%2Fa",
                "step_value": 1,
                "editable": 1,
                "type": 2,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": "61",
                "node_id": "60"
            },
            {
                "instance": 0,
                "minimum": 153,
                "maximum": 500,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "K",
                "step_value": 1,
                "editable": 1,
                "type": 42,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": "62",
                "node_id": "60"
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 16777215,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "type": 23,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "7001020%3B16419669%3B12026363%3B16525995",
                "id": "63",
                "node_id": "60"
            }
        ],
        "statusTemplate": "",
        "x": 290,
        "y": 120,
        "wires": [
            [
                "acb77823eda5d856"
            ]
        ]
    },
    {
        "id": "69289287975d01ae",
        "type": "hue-light",
        "z": "2562c7ccd13325ba",
        "name": "Tischlampe",
        "bridge": "a163cc3342214ac7",
        "lightid": "c61667d6-a7ff-48d3-a1f6-4c3c4fab15b6",
        "colornamer": true,
        "skipevents": false,
        "initevents": false,
        "x": 710,
        "y": 120,
        "wires": [
            [
                "faeb8d56d2534c0d"
            ]
        ]
    },
    {
        "id": "a163cc3342214ac7",
        "type": "hue-bridge",
        "name": "Wohnung",
        "bridge": "192.168.178.23",
        "key": "Aky3Egh4QdFowhVj8j45wOzweR-PdkHZeN2bRjJu",
        "worker": "10",
        "autoupdates": true,
        "disableupdates": false
    }
]

Mahlzeit zusammen :slight_smile:
Obwohl ich mittlerweile schon einiges probiert habe, komme ich hier immer noch nicht weiter.

Aktuell sieht es wie folgt aus:

Schalte Licht in der Hue-App an–>Licht geht an, Werte werden im NR und homee übernommen
Schalte Licht in der homee-App an–>Schalter springt für eine Millisekunde um, aber direkt wieder auf aus

Merkwürdig ist außerdem, dass ich den Dimmwert der Lampen ohne Probleme über homee steuern kann.

Wenn du magst schau ich da mal per teamviewer drauf.
Melde dich dann per PN bei mir.
VG

Die neue Version von Hue Magic hat die Art wie die Lichter geschaltet werden geändert. Hat mich einiges an Zeit und Nerven gekostet. Zum Glück ist die Ms. am Wochenende nicht zu Hause gewesen, insofern hat der WAF nicht gelitten :smiley:

Einfach zwischen RGB Funktion und Lampe einen Change Node einfügen

image

Bei mir läufts jetzt wieder

3 „Gefällt mir“

Fehler gefunden und nun läuft es wieder .:blush:

2 „Gefällt mir“

Nochmals besten Dank für deinen Support, besser geht es nicht!!!

2 „Gefällt mir“

Nachdem ich inzwischen 6 Hue Lampen habe und ich beim Versionsupgrade auf 4.x des Huemagic Moduls in Node Red keine Lust hatte 6 nahezu identische „RGB Funktion“ und „Rückkanal“ funktionen anzupassen (auch bei RGB hat sich da was geändert) habe ich die ganze Kopplung zwischen virtuellen Homee Lichtern und Hue so umgebaut, dass diese funktionen nur einmal zentral sind. Ich verwende die Homee id als Message topic.
Sieht inzwischen so aus


Da ist auch noch Schnickschnack dabei wie die Möglichkeit Hue Szenen über einen virtuellen „Dimmer“ von Homee aus zu steuern und die Synchronisierung von den Hue Lampen mit dem Nanoleaf Licht im selben Raum. Also evtl. mehr als die meisten brauchen.
Aber wenn es interessiert kann ich den Flow mal teilen.

5 „Gefällt mir“

Ja bitte unbedingt
Gruss