Mal wieder virtuelle Geräte - jetzt aber richtig!

Super! Gerade nachinstalliert und eingebunden. Debugmeldungen sind nun clean.

Hallo Matthias, könntest du den Flow in „</>“ einstellen - ich würde es gerne auch testen? Danke

Moin,

ich stehe gerde iwie auf dem Schlauch, kann mir wer helfen?
Ich versuch gerade die neue Syntax in Node Red ein zu bauen aber bekomme immer einen Fehler.

an meinem temp node kommt je nach zustand eine 1 bzw. eine 0 an. Das Temp Node sieht so aus und die Fehlermeldung daneben:

Probiere erst mal ohne ; am Ende und ohne die Leerzeichen.

1 „Gefällt mir“

nee leider kein erfolg. die leerzeichen und das ; am end sind weg.
Gleiche Meldung nur statt „… position 32“ jetzt 30

jetzt gehts auf einmal Node Red geschlossen und wieder geöffnet :man_shrugging:

danke dir

1 „Gefällt mir“

Hallo Zusammen,

anhand folgender Liste ist ja scheinbar ersichtlich welche Gerätetypen (Profile) und welche Attribute (Type) Homee unterstützt.

Woher weiß ich aber welches Profil welche Typen im Bauch hat?

Kann ich auch ein Gerät oder ein Attribute völlig frei definieren. 2 Bildliches Beispiele:

  • Gerät: „Zisterne“; Attribut 1: Wassersäule in M; Attribute 2: Wassermenge in M3; Attribute 3: Wassertemperatur
  • Gerät: Anwesenheit Mobiltelefon A; Attribut 1: Status 0/1; Attribute 2 letzter Login Timestamp

Viele Grüße
Carsten

das ist leider reine Erfahrungssache oder „try and error“

Wenn du ein Profil hast kannst du verschieden Typen testen. Wenn das Profil den Typ nicht kennt, wird in der homee App „unbekannte Eigenschaft“ angezeigt.

Frei definieren kann man leider nicht. Du könntest z.B „DimmableMeteringPlug“ als Profil mal testen.
Die unterstützt schon einiges an Typen. z.B. Schalter, Dimmwert, BW Alar, Manipulation, Fehlalarm, Batterieladung, Verbindungsqualität und noch einiges mehr.
Hab das Profil für meinen Neato Saugroboter und den Gardena Sileno benutzt.

Den Feature request für ein allround Profil speziell für hih und Node red gab es auch schon.

Da man die Beschriftung nicht ändern kann, hab ich mir z.B. so beholfen:

Es gibt Typen, bei denen kann man hinten hinter eine „Einheit“ (Text) setzen. Dort habe ich dann z.B. eine kurze erklärung geschrieben (1=lädt/0=off)

2 „Gefällt mir“

GuMo miteinander, vllt wird Matthias seinen Flow bald posten - bis dahin bastele ich gerade an einem Flow zu meinen Xiaomi Vacuum - ich weiß es gibt fertige Flows allerdings mit ioBroker oder mit Webhooks oder mit Homekit. Meine Idee ist die bestehenden Flows zu einem für mich perfekten Flow zsm. zu bringen - mir bleibt es als Javascript - Anfänger oft Copy-Paste + geringe Anpassungen die ich iwie noch verstehe. Daher würde ich mich freuen wenn ihr mich dabei unterstützt diesen Flow zu ende zu bringen :slight_smile:

Ziel: Hih Flow mit Zonen -Reinigung mit den Roborock Nodes…

Schritt 1: einen Blaupausen-Flow finden - genommen habe ich diesen hier:

Schritt 2: Flow anpassen und mit hih realisieren - z. B. so:

Wo stoße ich an meine Grenzen:

  • zum Hih Node wird alles durchgelassen, was vom Roborock event kommt- dh ich weiß nicht wie ich die Function Node baue um nur das zu hih durchzulassen, was ich auch an Attributen festgelegt habe /brauche
  • Zonen aktivieren - wie kriege ich diese Nodes bspw. Clean TV usw. aktiviert (ich weiß ich kann in Hih Attribute Dimmer mit dem Schieberegler 0 bis 10 drin lassen - nun meine Programmierkenntnisse sind zu schwach um bspw. aus einem msg.payload -> 3 die Node Clean TV starten zu lassen)

anbei mein Flow - wie es bisher aussieht:

[{"id":"e2d81f00.1b7c2","type":"tab","label":"Roborock","disabled":false,"info":""},{"id":"af746cad.5ecb4","type":"homeeDevice","z":"e2d81f00.1b7c2","virtual-homee":"","name":"Staubsauger EG","nodeId":"55","profile":"19","icon":"nodeicon_ventilationsystem","attributes":"[{\"id\":550,\"node_id\":55,\"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\":551,\"node_id\":55,\"instance\":1,\"minimum\":0,\"maximum\":1,\"current_value\":1,\"target_value\":1,\"last_value\":1,\"unit\":\"Laden\",\"step_value\":1,\"editable\":0,\"type\":1,\"state\":1,\"last_changed\":12345555,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":1,\"data\":\"\"},{\"id\":552,\"node_id\":55,\"instance\":0,\"minimum\":0,\"maximum\":100,\"current_value\":100,\"target_value\":100,\"last_value\":100,\"unit\":\"%25\",\"step_value\":1,\"editable\":0,\"type\":8,\"state\":1,\"last_changed\":1573711842,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":1,\"data\":\"\"}]","x":1000,"y":240,"wires":[["c2167e49.fffe08"]]},{"id":"6cdacf4c.116908","type":"comment","z":"e2d81f00.1b7c2","name":"Node 55 / ID 560","info":"","x":1100,"y":220,"wires":[]},{"id":"c2167e49.fffe08","type":"switch","z":"e2d81f00.1b7c2","name":"Control Cleaner","property":"payload.targetValue","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":800,"y":420,"wires":[["d1e60303.18cff8"],["1c9c808a.6801ff"]]},{"id":"d1e60303.18cff8","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"","server":"1e681984.5ce48e","command_name":"► Start","command":"app_start","commandType":"vacuum_cmd","payload":"payload","payloadType":"msg","coordinates":"","fan_speed":100,"voice_pack":null,"homekit_stop_to_dock":false,"x":1000,"y":380,"wires":[[]]},{"id":"1c9c808a.6801ff","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"","server":"1e681984.5ce48e","command_name":"◼ Stop & dock","command":"app_stop_dock","commandType":"vacuum_cmd","payload":"payload","payloadType":"msg","coordinates":"","fan_speed":100,"voice_pack":null,"homekit_stop_to_dock":true,"x":1020,"y":440,"wires":[[]]},{"id":"f467d0a9.20f268","type":"debug","z":"e2d81f00.1b7c2","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1090,"y":40,"wires":[]},{"id":"ffa7a741.bde54","type":"miio-roborock-event","z":"e2d81f00.1b7c2","name":"","server":"1e681984.5ce48e","eventTypes":["state","batteryLevel","cleanTime","in_cleaning"],"outputAtStartup":true,"x":80,"y":280,"wires":[["8cd0af1a.cf79a"]]},{"id":"8cd0af1a.cf79a","type":"switch","z":"e2d81f00.1b7c2","name":"state","property":"payload.key","propertyType":"msg","rules":[{"t":"eq","v":"cleanTime","vt":"str"},{"t":"eq","v":"batteryLevel","vt":"str"},{"t":"eq","v":"charging","vt":"str"},{"t":"eq","v":"state","vt":"str"},{"t":"eq","v":"in_cleaning","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":230,"y":280,"wires":[["a9dc0da3.d5c4a"],["1b940d04.dec0eb"],["be60ff30.cf8658"],["f2de26a2.50fd98"],["8355e65e.f9651"]]},{"id":"8355e65e.f9651","type":"function","z":"e2d81f00.1b7c2","name":"On","func":"var value = msg.payload.value;\n\nmsg.payload = {};\nmsg.payload.Active = value;\nmsg.payload.RotationSpeed = msg.status.fanSpeed;\nmsg.payload.SwingMode = msg.status.fanSpeed==105;\n\nnode.status({fill:\"grey\",shape:\"ring\",text:value?'true':'false'})\n\nreturn msg;","outputs":1,"noerr":0,"x":370,"y":360,"wires":[["f0ad9353.b217"]]},{"id":"f2de26a2.50fd98","type":"function","z":"e2d81f00.1b7c2","name":"ByState","func":"var value = msg.payload.value;\n\nmsg.payload = {};\nmsg.payload.LockPhysicalControls = value==='returning'?1:0;\n\nif ([\"charging\", \"error\", \"charger-offline\", \"charger-error\", \"waiting\", \"paused\", \"shutting-down\", \"updating\", \"docking\", \"returning\"].indexOf(value)>=0) {\n    msg.payload.Active = 0;\n} \n\nnode.status({fill:\"grey\",shape:\"ring\",text:value})\n\nreturn msg;","outputs":1,"noerr":0,"x":380,"y":300,"wires":[["f0ad9353.b217"]]},{"id":"be60ff30.cf8658","type":"function","z":"e2d81f00.1b7c2","name":"ChargingState","func":"var key = msg.payload.key;\nvar value = msg.payload.value;\n\nmsg.payload = {};\n\nif ('charging' === key) {\n    msg.payload.ChargingState = value?1:0\n    \n} else if ('state' === key) {\n    msg.payload.ChargingState = value==='charging'?1:0;\n} \n\nnode.status({fill:\"grey\",shape:\"ring\",text:msg.payload.ChargingState?'true':'false'})\n\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":240,"wires":[["f0ad9353.b217"]]},{"id":"1b940d04.dec0eb","type":"function","z":"e2d81f00.1b7c2","name":"BatteryLevel","func":"var value = msg.payload.value;\n\nmsg.payload = {\n    \"BatteryLevel\": value,\n    \"StatusLowBattery\": value < 15 ? 1 : 0\n}\n\nnode.status({fill:\"grey\",shape:\"ring\",text:value+'%'})\n\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":180,"wires":[["f0ad9353.b217"]]},{"id":"a9dc0da3.d5c4a","type":"switch","z":"e2d81f00.1b7c2","name":"cleanTime > 40 min","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"2400","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":410,"y":120,"wires":[["3a39dcb.bd11924"]]},{"id":"3a39dcb.bd11924","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"","server":"1e681984.5ce48e","command_name":"◼ Stop","command":"app_stop","commandType":"vacuum_cmd","payload":"payload","payloadType":"msg","coordinates":"","fan_speed":"","homekit_stop_to_dock":true,"x":600,"y":120,"wires":[["f9b3633b.2b569"]]},{"id":"f9b3633b.2b569","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"","server":"1e681984.5ce48e","command_name":"Find me","command":"find_me","commandType":"vacuum_cmd","payload":"payload","payloadType":"msg","coordinates":"","fan_speed":"","homekit_stop_to_dock":true,"x":760,"y":120,"wires":[[]]},{"id":"e767ed11.635788","type":"function","z":"e2d81f00.1b7c2","name":"","func":"node.send ({payload:{\"attribute\":{\"id\":550,\"value\":msg.payload.Active}}});\nnode.send ({payload:{\"attribute\":{\"id\":551,\"value\":msg.payload.LockPhysicalControls}}});\nnode.send ({payload:{\"attribute\":{\"id\":552,\"value\":msg.payload.BatteryLevel}}});\nreturn msg;","outputs":1,"noerr":0,"x":750,"y":260,"wires":[["f70b8931.228338"]]},{"id":"f0ad9353.b217","type":"rbe","z":"e2d81f00.1b7c2","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":550,"y":300,"wires":[["81ee136c.59539"]]},{"id":"81ee136c.59539","type":"json","z":"e2d81f00.1b7c2","name":"","property":"payload","action":"obj","pretty":false,"x":670,"y":200,"wires":[["e767ed11.635788"]]},{"id":"f70b8931.228338","type":"change","z":"e2d81f00.1b7c2","name":"","rules":[{"t":"delete","p":"payload.LockPhysicalControls","pt":"msg"},{"t":"delete","p":"payload.Active","pt":"msg"},{"t":"delete","p":"payload.RotationSpeed","pt":"msg"},{"t":"delete","p":"payload.SwingMode","pt":"msg"},{"t":"set","p":"payload.attribute","pt":"msg","to":"payload.attribute","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":860,"y":180,"wires":[["af746cad.5ecb4"]]},{"id":"3d5804ef.eb6ddc","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"Clean TV","server":"1e681984.5ce48e","command_name":"► Start zone","command":"app_zoned_clean","commandType":"vacuum_cmd","payload":"arguments","payloadType":"vacuum_payload","coordinates":"[\n   [23513,24340,26137,25991,1]\n]","fan_speed":100,"voice_pack":null,"homekit_stop_to_dock":true,"x":1000,"y":800,"wires":[[]]},{"id":"c2e34a89.97d24","type":"switch","z":"e2d81f00.1b7c2","name":"on/off","property":"payload.On","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":830,"y":800,"wires":[["3d5804ef.eb6ddc"],["1c9c808a.6801ff"]]},{"id":"fafef411.2af21","type":"switch","z":"e2d81f00.1b7c2","name":"on/off","property":"payload.On","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":830,"y":740,"wires":[["4588d907.3aca"],["1c9c808a.6801ff"]]},{"id":"4588d907.3aca","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"Clean Wohnung","server":"1e681984.5ce48e","command_name":"► Start zone","command":"app_zoned_clean","commandType":"vacuum_cmd","payload":"arguments","payloadType":"vacuum_payload","coordinates":"[\n   [16609,21273,26082,29814,1]\n]","fan_speed":100,"voice_pack":null,"homekit_stop_to_dock":true,"x":1020,"y":740,"wires":[[]]},{"id":"51a45d3f.250aa4","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"Clean Schreibtsich","server":"1e681984.5ce48e","command_name":"► Start zone","command":"app_zoned_clean","commandType":"vacuum_cmd","payload":"arguments","payloadType":"vacuum_payload","coordinates":"[\n   [19360,27553,21117,29763,1]\n]","fan_speed":100,"voice_pack":null,"homekit_stop_to_dock":true,"x":1030,"y":680,"wires":[[]]},{"id":"8d0e98fe.d102b","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"Clean Esstisch","server":"1e681984.5ce48e","command_name":"► Start zone","command":"app_zoned_clean","commandType":"vacuum_cmd","payload":"arguments","payloadType":"vacuum_payload","coordinates":"[\n   [21238,23999,22973,25802,1]\n]","fan_speed":"","homekit_stop_to_dock":true,"x":1020,"y":620,"wires":[[]]},{"id":"d97f9320.375638","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"Clean Kitchen","server":"1e681984.5ce48e","command_name":"► Start zone","command":"app_zoned_clean","commandType":"vacuum_cmd","payload":"arguments","payloadType":"vacuum_payload","coordinates":"[\n   [16690,21306,19646,23811,1]\n]","fan_speed":"","homekit_stop_to_dock":true,"x":1020,"y":560,"wires":[[]]},{"id":"a05bef75.3f6b78","type":"miio-roborock-command","z":"e2d81f00.1b7c2","name":"Clean Room","server":"1e681984.5ce48e","command_name":"► Start zone","command":"app_zoned_clean","commandType":"vacuum_cmd","payload":"arguments","payloadType":"vacuum_payload","coordinates":"[\n   [21274,23124,25991,25894,1]\n]","fan_speed":"","homekit_stop_to_dock":true,"x":1010,"y":500,"wires":[[]]},{"id":"3f91ef85.aaa5c8","type":"switch","z":"e2d81f00.1b7c2","name":"on/off","property":"payload.On","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":830,"y":500,"wires":[["a05bef75.3f6b78"],["1c9c808a.6801ff"]]},{"id":"640bac96.7388dc","type":"switch","z":"e2d81f00.1b7c2","name":"on/off","property":"payload.On","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":830,"y":560,"wires":[["d97f9320.375638"],["1c9c808a.6801ff"]]},{"id":"c5cf31a9.d83898","type":"switch","z":"e2d81f00.1b7c2","name":"on/off","property":"payload.On","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":830,"y":620,"wires":[["8d0e98fe.d102b"],["1c9c808a.6801ff"]]},{"id":"36d13724.46fcb8","type":"switch","z":"e2d81f00.1b7c2","name":"on/off","property":"payload.On","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":830,"y":680,"wires":[["51a45d3f.250aa4"],["1c9c808a.6801ff"]]},{"id":"1e681984.5ce48e","type":"miio-roborock-server","z":"","name":"WallE","ip":"192.168.178.27","token":"44414133504f664e3652745a47527063","polling":"10"}]

ps vllt bin ich aber völlig auf einem Holzweg und ihr kennt doch ne einfachere Lösung…danke schon mal vorab

EDIT: Thema erledigt -> hab jetzt ioBroker und den Homee ioBroker Flow für Xiaomi Vacuum.

Hallo @johnybravo0815,
ich habe Node-Red auf Basis des Iobroker Images installiert, weil es so u.a. in den Wikis beschrieben ist (also mehr oder weniger Neewbie Approach).
Mittlereweile habe ich die Vorteile des IOBrokers schätzen gelernt. Er kann mit seinen Adaptern zu allen Geräten eine Verbindung erstellen - MQTT, Zigbee, Zwave, XiaoMi, BLE etc. In Node-Red kannst Du dann auf die Geräte via IoBorker-Device direkt zugreifen. Sprich der IoBroker bildet die Basis für alle Hardware-Verbindungen, und in Node-Red baust Du in mit den Flows die Intelligenz auf. Und die diversen Nodes für HiH, Alexa, Fritzbox, Mi, HueBridge usw. erweitern das Spektrum bzw. vice versa. Ich finde gerade die Kombination aus beiden eröffnet fast grenzenlose Möglichkeiten. :slight_smile: Ich glaube @Micha hat mal gepostet, „Node-Red und HiH macht süchtig“. In Verbindung mit dem IoBroker noch vielmehr!

an dieser stelle einfach nochmal DANKE an
@Micha und @stfnhmplr

Ich freu mich gerade wie ein Schneekönig, :smile: hab diese woche meine neue Viessmann Gas-Heizung und den Warmwasserspeicher bekommen und dank der ganzen Tutorials beides schon in homee.

1 „Gefällt mir“

Guten Morgen,

hat jemand von euch den Hue Präsenzmelder in NodeRed umgesetzt und kann ihn als virtuelles Gerät zur Verfügung stellen?

Edit: Ich möchte die Dinger wieder über die Hue Bridge laufen lassen.

Viele Grüße

Hier gibt’s schon was:

danke …bin seit gestern auch schon am lernen - was ioB so kann :slight_smile: und ja da stimme ich euch zu, es eröffnet grenzenlose Möglichkeiten :slight_smile: hab ein paar Fragen zum Verständnis:
Frage 1 MQTT: vor ioB musste ich auf meinem Raspi via apt-get und wget mqtt installieren - dies erübrigt sich mit dem ioBroker stimmt’s?

Frage 2 Homee Adapter: braucht es noch Node-Red wenn ich in ioB auch den Homee Adapter habe? Hab da gestern was gesehen aber noch nicht ausprobiert?

ps danke nochmal an alle - es gibt so vielen Foren aber keins in dem jeder sich so gut hilft und auf eine Antwort nicht Monate gewartet werden muss. Ich freue mich bald auch über mein Hausbauprojekt zu berichten, dieses werde ich ohne Loxone oder KNX smart realisieren :slight_smile: der Elektriker weißt noch nichts von seinem Glück :smiley: die Frau nur teils …schönes WE

auch von mir besten Dank für deine Arbeit und diesen Flow…kurze Frage ich habe die Koordinaten meiner Zonen aus der Valetudo Config.json entnommen bsp.: 22000:21300:23111:1 - wo kann ich sie eintragen um die Zonen aus deinem Flow nutzen zu können?
VG Michael

Hi,

du brauchst Node Red, wenn du virtuelle Geräte anlegen willst. Dort importierst du den Flow und gibst auch die Koordinaten des Sauger. Der homee Adapter erlaubt dir andersrum echt Geräte in iobroker zu steuern oder zu visualisieren.

:coffee:

1 „Gefällt mir“

Hallo @johnybravo0815,

Ich bin wirklich nicht der Pro, da gibt es hier andere viel viel Bessere im Forum. Und ja, ich gebe Dir Recht das Forum hier und seine Mitglieder sind der Hammer :grinning:
Zu 1: Ja, MQTT Server/Client steht als Adapter Im IOBroker zur Verfügung
Zu 2: Meines Wissens funktioniert HiH nur mit der Node https://flows.nodered.org/node/node-red-contrib-homee von Stefan In Node-Red.
Es gibt zu HiH und Node-Red ein gutes Wiki WIKI: Virtuelle Geräte via hih
Es gibt auf YouTube auch einige Hilfreiche Videos von @Micha YouTube Channel

VG
Möllo

1 „Gefällt mir“

ja das habe ich alles bereits und alles läuft 1a - was ich nicht weiß ist wo genau tippe ich die Koordinaten der Zonen ein - laut dem hih gibt es 10 Zonen die würde ich gerne mit den Koordinaten meiner Wohnung belegen…ich denke und so sehe ich das im Flow, dass diese ID 553 mit den 10 Zonen noch keine Function Node hat ergo noch ohne Funktion ist…

In meiner Version des Flows gibt es ein Node „setze Koordinaten“. Dort trägt man für die Werte 1-10 die Koordinaten ein und verbindet das Node noch mit dem Geräte-Node. Dann wird bei Übermittlung des Werts 1 die Koordinate zugehörig zu 1 an den Sauger geschickt.
Bei mir ist es die ID 555 - aber dass ist ja individuell.

:coffee:

Vielen Dank! Funktioniert!

Kann man zusätzlich noch die Dauer des Bewegungsalarms in das Gerät mit aufnehmen? Oder kann mir jemand einen Tipp geben, wie das Ganze funktioniert?