Mal wieder virtuelle Geräte - jetzt aber richtig!

Super dann brauche ich da nicht nochmal drüber schauen.:+1::wink:

Hallo Leute,

ich versuche gerade meine HUE Leuchtmittel via vhih zu Integrieren, scheiter allerdings an den Leuchtmitteln mit Farbtemperatur und Farbe. Es funktioniert alles alles außer die Einstellung der Farbe und Farbtemperatur. Vielleicht findet jemand meinen Fehler:

[
    {
        "id": "257cdc07.ee733c",
        "type": "tab",
        "label": "Hue Schlafzimmer Indirekt",
        "disabled": false,
        "info": ""
    },
    {
        "id": "448714ea.09835c",
        "type": "comment",
        "z": "257cdc07.ee733c",
        "name": "Node ID 40",
        "info": "40",
        "x": 160,
        "y": 180,
        "wires": []
    },
    {
        "id": "4ebcaeaf.7b0078",
        "type": "homeeDevice",
        "z": "257cdc07.ee733c",
        "virtual-homee": "",
        "name": "Hue Schlafzimmer Indirekt",
        "nodeId": "40",
        "showNodeId": true,
        "profile": "1002",
        "icon": "default",
        "attributes": [
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 40,
                "type": 1,
                "node_id": 40
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "n%2Fa",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 41,
                "type": 2,
                "node_id": 40
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 8000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "K",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 42,
                "type": 42,
                "node_id": 40
            },
            {
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 16777215,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "last_changed": 1603024039,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 43,
                "type": 23,
                "node_id": 40
            }
        ],
        "statusTemplate": "",
        "x": 150,
        "y": 220,
        "wires": [
            [
                "91cf23a9.4ac23"
            ]
        ]
    },
    {
        "id": "91cf23a9.4ac23",
        "type": "function",
        "z": "257cdc07.ee733c",
        "name": "RGB Funktion",
        "func": "if (msg.payload.attributeId === 43){\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 === 40){node.send({payload:{\"on\":msg.payload.targetValue}})}\nif (msg.payload.attributeId === 41){node.send({payload:{\"brightness\":msg.payload.targetValue}})}\nif (msg.payload.attributeId === 42){node.send({payload:{\"colorTemp\":msg.payload.targetValue}})}\n",
        "outputs": 1,
        "noerr": 0,
        "x": 400,
        "y": 220,
        "wires": [
            [
                "b1e3c0e7.679768",
                "6431f532.4f8d2c",
                "e8e79cb0.925e28"
            ]
        ]
    },
    {
        "id": "ed04f6e5.a9f948",
        "type": "switch",
        "z": "257cdc07.ee733c",
        "name": "",
        "property": "payload.reachable",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 850,
        "y": 220,
        "wires": [
            [
                "aef4355f.1260c8"
            ]
        ]
    },
    {
        "id": "aef4355f.1260c8",
        "type": "function",
        "z": "257cdc07.ee733c",
        "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:{\"id\":40,\"value\":msg.payload.on}})\nnode.send({payload:{\"id\":41,\"value\":msg.payload.brightness}})\nnode.send({payload:{\"id\":42,\"value\":msg.payload.colorTemp}})\nif( msg.payload.hex){\nvar test = msg.payload.hex.split('');\nvar ausgabe = \"\";\numr(i = test[5]);\nZahl1 = ausgabe*1;\numr(i = test[4]);\nZahl2 = ausgabe*16;\numr(i = test[3]);\nZahl3 = ausgabe*256;\numr(i = test[2]);\nZahl4 = ausgabe*4096;\numr(i = test[1]);\nZahl5 = ausgabe*65536;\numr(i = test[0]);\nZahl6 = ausgabe*1048576;\nnode.send({payload: {\"id\":43,\"value\":Zahl1+Zahl2+Zahl3+Zahl4+Zahl5+Zahl6}})}\nfunction umr(){\n    switch(i){\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 \"a\": ausgabe =10; break;\n\t\tcase \"b\": ausgabe = 11; break;\n\t\tcase \"c\": ausgabe  = 12; break;\n\t\tcase \"d\": ausgabe =13; break;\n\t\tcase \"e\": ausgabe =14; break;\n\t\tcase \"f\": ausgabe =15; break;\n}}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 1070,
        "y": 220,
        "wires": [
            [
                "4ebcaeaf.7b0078"
            ]
        ]
    },
    {
        "id": "b1e3c0e7.679768",
        "type": "hue-light",
        "z": "257cdc07.ee733c",
        "name": "Schlafzimmer Indirekt 1",
        "bridge": "46dbbbeb.8538f4",
        "lightid": "14",
        "colornamer": true,
        "skipevents": false,
        "universalevents": false,
        "x": 610,
        "y": 220,
        "wires": [
            [
                "ed04f6e5.a9f948"
            ]
        ]
    },
    {
        "id": "6431f532.4f8d2c",
        "type": "hue-light",
        "z": "257cdc07.ee733c",
        "name": "Schlafzimmer Indirekt 2",
        "bridge": "46dbbbeb.8538f4",
        "lightid": "5",
        "colornamer": true,
        "skipevents": false,
        "universalevents": false,
        "x": 610,
        "y": 180,
        "wires": [
            [
                "ed04f6e5.a9f948"
            ]
        ]
    },
    {
        "id": "e8e79cb0.925e28",
        "type": "hue-light",
        "z": "257cdc07.ee733c",
        "name": "Schlafzimmer Indirekt 3",
        "bridge": "46dbbbeb.8538f4",
        "lightid": "4",
        "colornamer": true,
        "skipevents": false,
        "universalevents": false,
        "x": 610,
        "y": 140,
        "wires": [
            [
                "ed04f6e5.a9f948"
            ]
        ]
    },
    {
        "id": "46dbbbeb.8538f4",
        "type": "hue-bridge",
        "z": "257cdc07.ee733c",
        "name": "Philips hue",
        "bridge": "192.168.178.20",
        "key": "p3Qzq7eQT5-RXHdMvGZqDdFGl5zgyvoLkB1xKGRk",
        "interval": "3000",
        "disableupdates": false
    }
]

Ich hatte den Flow von @stfnhmplr von GitHub kopiert:

Vielen Dank und Liebe Grüße

Mir schießt es Node Red ab wenn ich den Flow importiere.
Schaue ich mir mal später an.

So habe mal geschaut und konnte feststellen das bestimmte Lampen auf den ColorTemp Wert nicht reagieren, da sie es nicht können. ( hue iris )
Wichtig ist auch die Range der ColorTemp. Bekommst du eine Fehlermeldung in Node Red ?
Kannst die Farbtemperatur ja mal über ein inject an das hue node senden.
msg.payload.colorTemp

@Micha:
Ich bräuchte mal wieder kurz deine Hilfe.

Ich hab für den Verriegelungszustand der Schlösser auch noch ein Gerät angelegt.

Allerdings wird mir wenn alles verriegelt ist in homee Folgendes angezeigt:

In der iOS-App wird das Schloss-Icon zwar richtig angezeigt (geschlossen), aber der Zustand steht fälschlicherweise auf „Offen“:

In der Webapp wird mir ein Fehler angezeigt:

image

Hier meine Funktion:

Und hier die Konfiguration meines homee-Nodes:

image

Was mach ich da falsch?

Edit:
Hat sich erledigt. Habs selbst gefunden. Man muss das Attribut auf „Sperrzustand“ setzen. Nur das passt zum Schloss. Dann gehts auch:

image

image

1 „Gefällt mir“

So, ich hab da echt Gefallen dran gefunden und jetzt auch mal meine Siemens Kaffeemaschine (Home Connect) in homee eingebunden.

Benutzt hab ich dazu:

Hat wunderbar geklappt. Hier mein Flow:

[{"id":"1bd55ea3.4cf571","type":"tab","label":"Kaffeemaschine","disabled":false,"info":""},{"id":"39c82726.cc0e18","type":"home-connect-request","z":"1bd55ea3.4cf571","auth":"36ab1033.2965d","name":"","tag":"settings","operationId":"get_settings","haid":"","body":"","optionkey":"","programkey":"","settingkey":"","statuskey":"","imagekey":"","x":330,"y":240,"wires":[["64e08ea4.98f1a","9eff67ba.678b98"]]},{"id":"64e08ea4.98f1a","type":"debug","z":"1bd55ea3.4cf571","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":550,"y":300,"wires":[]},{"id":"85f7685a.933868","type":"inject","z":"1bd55ea3.4cf571","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":240,"wires":[["39c82726.cc0e18"]]},{"id":"9eff67ba.678b98","type":"function","z":"1bd55ea3.4cf571","name":"","func":"if(msg.payload.data.settings[0].value ===\"BSH.Common.EnumType.PowerState.Standby\"){return {payload:{\"attribute\":{\"id\":991,\"value\":0}}}}\nelse \nreturn {payload:{\"attribute\":{\"id\":991,\"value\":1}}}\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":540,"y":240,"wires":[["ccfada91.361878"]]},{"id":"ccfada91.361878","type":"homeeDevice","z":"1bd55ea3.4cf571","virtual-homee":"","name":"Kaffeemaschine","nodeId":"990","showNodeId":false,"profile":"16","icon":"default","attributes":[{"state":1,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"","step_value":1,"editable":1,"last_changed":1603205694,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":991,"type":1,"node_id":990}],"statusTemplate":"","x":740,"y":240,"wires":[["d79f2214.8cf5b"]]},{"id":"d79f2214.8cf5b","type":"switch","z":"1bd55ea3.4cf571","name":"","property":"payload.targetValue","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":910,"y":240,"wires":[["1d47ff57.159a01"],["e2ae0d1f.f045d"]]},{"id":"1d47ff57.159a01","type":"home-connect-request","z":"1bd55ea3.4cf571","auth":"36ab1033.2965d","name":"turn_on","tag":"settings","operationId":"set_setting","haid":"","body":"{\n  \"data\": {\n    \"key\": \"BSH.Common.Setting.PowerState\",\n    \"value\": \"BSH.Common.EnumType.PowerState.On\",\n    \"type\": \"BSH.Common.EnumType.PowerState\",\n    \"constraints\": {\n      \"allowedvalues\": [\n        \"BSH.Common.EnumType.PowerState.On\",\n        \"BSH.Common.EnumType.PowerState.Standby\"\n      ]\n    }\n  }\n}","optionkey":"","programkey":"","settingkey":"BSH.Common.Setting.PowerState","statuskey":"","imagekey":"","x":1080,"y":200,"wires":[[]]},{"id":"e2ae0d1f.f045d","type":"home-connect-request","z":"1bd55ea3.4cf571","auth":"36ab1033.2965d","name":"turn_off","tag":"settings","operationId":"set_setting","haid":"","body":"{\n  \"data\": {\n    \"key\": \"BSH.Common.Setting.PowerState\",\n    \"value\": \"BSH.Common.EnumType.PowerState.Standby\",\n    \"type\": \"BSH.Common.EnumType.PowerState\",\n    \"constraints\": {\n      \"allowedvalues\": [\n        \"BSH.Common.EnumType.PowerState.On\",\n        \"BSH.Common.EnumType.PowerState.Standby\"\n      ]\n    }\n  }\n}","optionkey":"","programkey":"","settingkey":"BSH.Common.Setting.PowerState","statuskey":"","imagekey":"","x":1080,"y":260,"wires":[[]]},{"id":"36ab1033.2965d","type":"home-connect-auth","z":"","name":"","simulation_mode":false,"scope":"","callback_url":"http://192.168.178.50:1880/homeconnect/auth/callback"}]

Und in homee:

image

@Micha:
Bei Interesse kann der Flow gerne zu den Beispielflows in GitHub hinzugefügt werden.

1 „Gefällt mir“

Besteht auch Interesse an meinem BMW-Flow? Dann würde ich den auch für GitLab bereitstellen?

Muss ihn nur vorher von meinen Daten bereinigen.

Ist schon klasse. Hab dank vhih jetzt in wenigen Tagen 17 neue Geräte anlernen können (SONOS, Smart Life Plugs, Husqvarna Automower, Siemens Kaffeemaschine, BMW). Zusätzlich noch die Anwesenheit meiner Frau und mir via Fritz!Box-Flow und den homee-Status.

Als nächstes werd ich die Aqara-Sensoren versuchen einzubinden.

1 „Gefällt mir“

Wenn du flows hast die eingestellt werden sollen dann sende sie @medicus07 oder @stfnhmplr bzw. auch mir per PN.

VG Micha

Ok, erledigt. Hab euch mal beide Flows geschickt.

So wie ich das sehe sind keine sensiblen Daten mehr drin. Könntet aber sicherheitshalber noch mal drüber schauen.

1 „Gefällt mir“

Also falls jemand über dieselbe Herausforderung stolpert, wie ich, die Homematic IP Geräte über die CCU einzubinden, hier die Flows für das Raumthermostat und das Heizungsthermostat. Endlich geschafft :muscle:t2:

Raumthermostat WTH-2

[{"id":"895ec120.51cab","type":"homeeDevice","z":"c7696333.f10fe","virtual-homee":"","name":"Raumthermostat Template","nodeId":"","showNodeId":true,"profile":"3004","icon":"default","attributes":[{"state":1,"instance":0,"minimum":0,"maximum":100,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"n/a","step_value":1,"editable":1,"last_changed":1603229606,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":40,"type":2,"node_id":null},{"state":1,"instance":0,"minimum":0,"maximum":28,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"°C","step_value":0.5,"editable":1,"last_changed":1603229612,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":41,"type":6,"node_id":null},{"state":1,"instance":0,"minimum":-50,"maximum":125,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"°C","step_value":0.5,"editable":0,"last_changed":1603229617,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":42,"type":5,"node_id":null},{"state":1,"instance":0,"minimum":0,"maximum":100,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"n/a","step_value":1,"editable":0,"last_changed":1603229636,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":43,"type":7,"node_id":null},{"state":1,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"n/a","step_value":1,"editable":0,"last_changed":1603229641,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":44,"type":69,"node_id":null}],"statusTemplate":"","x":640,"y":400,"wires":[[]]}]

Heizungsthermostat eTRV2

[{"id":"4410fad0.dc0d14","type":"homeeDevice","z":"c7696333.f10fe","virtual-homee":"","name":"Heizung","nodeId":"60","showNodeId":true,"profile":"3006","icon":"default","attributes":[{"state":1,"instance":0,"minimum":0,"maximum":100,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"n/a","step_value":1,"editable":1,"last_changed":1603229606,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":60,"type":2,"node_id":60},{"state":1,"instance":0,"minimum":0,"maximum":28,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"°C","step_value":0.5,"editable":1,"last_changed":1603229612,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":61,"type":6,"node_id":60},{"state":1,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"n/a","step_value":1,"editable":0,"last_changed":1603229641,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":64,"type":69,"node_id":60},{"state":1,"instance":0,"minimum":0,"maximum":100,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"n/a","step_value":1,"editable":1,"last_changed":1603230319,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":63,"type":18,"node_id":60},{"state":1,"instance":0,"minimum":-50,"maximum":125,"current_value":0,"target_value":0,"last_value":0,"data":"","unit":"°C","step_value":0.5,"editable":0,"last_changed":1603232418,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":62,"type":5,"node_id":60}],"statusTemplate":"","x":750,"y":1680,"wires":[["d30d7a19.99b448"]]}]
1 „Gefällt mir“

Hallo Micha, hast Du mal einen Tipp für mich, wie ich die verschiedenen Sender rein bekomme. Das verstehe ich irgendwie nicht so ganz… Habe zum Beispiel 1Live, WDR2, Charivari. Gruß und Dank :slight_smile:

Du gehst auf die Seite tunein.com und suchst deinen Sender.


Dann kannst du auf abspielen gehen und gehst dann in den Browser und dort steht dann die Sender Nummer

Geht auch irgendwie anders mit dem raussuchen der Nummer :man_shrugging::see_no_evil:

VG Micha

1 „Gefällt mir“

Hat schon jemand gegen die Beta getestet? In den Attributen gibt es jetzt die Eigenschaft „name“ . Womit man dann relativ einfach den Messwert benennen kann. Aktuell gibt es hier wohl ein Fehler weil homee diese Eigenschaft wohl nun vermisst.

Könntest du das etwas präzisieren? Wie äußert sich das?

Hallo @Micha,

Ich hatte jetzt wieder ein bisschen Zeit mich damit zu beschäftigen.
Wenn ich den Flow wieder Importiere, dann zerschießt mir es ebenfalls Node Red.

Könntest du mir einen funktionierenden Flow zukommen lassen?

Danke & Liebe Grüße

@TK1 Kannst du mir sagen welchen Flow du meinst.
VG

Sorry, ich meinte den für ein HUE Leuchtmittel.
Danke!

So wie es aussieht scheint ein Problem mit dem node-red-contrib-hue zu bestehen.
Hast du den Flow mit diesem node importiert ?
Oder welches hue Node ist dort in Verwendung?

Ich habe das „node-red-contrib-huemagic“ in verwendung.

Ich wollte es nochmal nachstellen, aber offensichtilich hab ich den Fehler nicht mehr. Hatte mit ein paar Flows experimentiert und da war wohl einer faul. Aktuell hab ich fast alles wieder wie vorher.