Mal wieder virtuelle Geräte - jetzt aber richtig!

Welche Version des Plugins verwendest du und wie lange wartest du nach einem Deploy in Node-RED? Klingt nach einem Verhalten, was ältere Versionen an den Tag gelegt haben.

Ich hab dazu mal einen Beitrag veröffentlicht. Neben vielen Tipps zum Schreiben von Funktionen findest du am Ende auch einen Beispiel-Flow, bei dem die Shelly 2.5 als RollerShutter eingebunden werden: https://www.himpler.com/blog/node-red-homee-funktionen-fuer-virtuelle-geraete/

Ich dachte ich hätte das ins Wiki geschrieben, hab ich wohl vergessen. Aber in der Hilfe des Nodes findest du dazu einen Punkt. Das Status Template kann dazu genutzt werden, den Status Text unter dem Node in Node-RED anzupassen. Also das, wo jetzt die Werte der Attribute stehen. Es kann dort ein beliebiger Text eingegeben werden. Zur Ausgabe der Attributdaten kann man sich einer Template-Syntax bedienen: {{ #[Attribut-ID].[Eigenschaft] }}, also gibt z.B. {{ #1.current_value }} den aktuellen Wert von current_value aus.

4 „Gefällt mir“

Moin,

gibt es die Möglichkeit iobroker und HomeAssistant parralel auf einem raspberry pi laufen zu lassen?
Wenn ja, wie stelle ich das an?

ja klar get das.

Am einfachsten du installierst iobroker, und nutzt den Node Red adapter. Dann läuft NR quasi als Plugin von iobroker.

Alternative wäre alles in einzelnen Docker Containern laufen zu lassen. So ist es bei mir. Nachteil: Damit man Daten von io zu NR oder umgekehrt kriegt, muss man MQTT nutzen. ist also eher für Profis :wink: Für den Anfang würde ich das obere nehmen…


tltr:
Könnte jemand mit iobroker in Docker mal folgenden Befehl aufrufen und mit dem Output antworten:

docker inspect --format=’{{json .NetworkSettings.Networks}}’ iobroker

Kann sein, dass Ihr ein „sudo“ davor setzen müsst und das iobroker am Schluss steht für den Containernamen, der bei Euch eventuell anders lautet.

Danke


Hallo zusammen,

bei mir läuft iobroker mit node red unter Docker, in einer macvlan-Umgebung. Leider ist der Zugriff vom host auf den Container, durch Docker unterbunden.

Note : In Macvlan you are not able to ping or communicate with the default namespace IP address. For example, if you create a container and try to ping the Docker host’s eth0 it will not work. That traffic is explicitly filtered by the kernel modules themselves to offer additional provider isolation and security.

Quelle

Wenn ich über einen VPN, der auf dem selben Server läuft, auf mein Heimnetz zugreife, stellt diese Einschränkung ein Problem dar, denn ich kann iobroker bzw. node red nicht erreichen.

Damit ich mir mein System nicht verbastel, habe ich einen weiteren Container von iobroker im bridge-modus erstellt. Dieser Container erreicht homee über die homee api. Ich kann beispielsweise den Systemstatus abfragen, aber ich kann homee nicht dazubringen einen neuen virtuellen homee zu verbinden.

Beim Verbindungsversuch erhalte ich je nach App verschieden, nicht sehr aufschlussreiche Fehlermeldungen:

Web-App (sinngemäß): Eine Verbindung kann nicht hergestellt werden bitte Versuchen Sie es später erneut.

Android-App (sinngemäß): Benutzername oder Passwort falsch.

Im Konfigurations-node habe ich die homee-ID, den Benutername und das Passwort geändert. In meinem Flow ist die node-ID einzigartig.

In welchem Modus laufen Eure Container?

Kann man mehr als einen virtuellen homee überhaupt verbinden?

Bevor ich mit einem Proxy und den ip-Routen anfange das Problem über einen Bypass zu lösen, denke ich, dass es einfacher ist den Container anzupassen.

Würde mich auch interessieren, aktuell nutze ich noch NR& IFTTT mit der Tahoma Box (RTS), wollte noch umsteigen auf die freigegebene Somfy API. Das Problem war aber die Authentifizierung an der API, die hielt nur eine Stunde lang :weary:

Moin Stefan, ich habe hier folgenden Thread:

Danke Dir!

Gruß
Robin

Hallo @Sofasportler,
der Integrationsweg ist Homee -> HiH -> NodeRed -> Homeassistant mit Somfy Integration -> Tahoma Box -> io Motoren (puhh ganz schön lang). Die Integration läuft seit einer Woche. In dieser Zeit aber stabil.

Mein 1. Versuch war über NR und das Tahoma Plugin. Dort hatte ich dasselbe Problem wie Du. Eine Session war 1-2 Tage gültig und musste dann erneuert werden.
Darum mein Umstieg auf die Somfy Integration in HomeAssistant.

Gerne kann ich nach 2-3 Wochen nochmal posten, ob die Integration weiterhin stabil ist.

Hmm schon wieder Home Assistant, muss mich wohl doch mal intensiver damit beschäftigen :face_with_monocle:

Am Wochenende gab es noch ein Update am Tahoma NR. Das werde ich noch bei Gelegenheit probieren. Sonst habe ich ja jetzt eine Fallback Lösung mit HA und ein Grund mehr HA zu installieren :+1:


Possible solution:
  • Log in to https://www.tahomalink.com
  • Choose hamburger ico> my account
  • Click on „My Somfy account“
  • Click on „Give someone else access to my box“
  • Click in Node-RED on „link Node-RED to tahoma“
    I have used my local IP address.

Vielen Dank. "Beispiel-Flow, bei dem die Shelly 2.5 als RollerShutter " ist genau was ich gesucht habe :+1:

1 „Gefällt mir“

Hallo !! Vielleicht ist jemand so nett und hilft mir einmal zum Start.
Ich habe node red aufgesetzt, die Verbindung mit dem homee (hih) läuft und der node aus dem homee wird auch geschaltet und ich habe auch den shelly 1 node erstellt.

den shelly node kann ich auslesen und bekommen z.b. ison:false zurück …
soweit so gut…

mit welcher funktion verbinde ich die beiden, bzw. in welcher art muss ich die daten an das shelly node senden … als string und json geht das nicht

habe das mit dem inject alles getestst und komme nicht weiter

Guck mal hier:

Da findest du jede Menge Beispiele :wink:

Mit welchem Node hast du den String gesendet, Inject?

Ja genau inject

Hm, ich habe es mal nachgestellt wie beschrieben. Ich bekomme den Shelly 1 nur ausgeschaltet. Und da ist quasi egal, was man über den Inject schickt. Welche Firmware hast du auf dem Shelly? Ich weiß nicht, ob das mit der 1.8… läuft.
Meine Shellys laufen alle über iobroker. Da gibt es einen Adapter für 1.8.

Nimm mal in Node Red Mqtt und verbinde die mit dem Shelly, da kannste wunderbar testen

Oder wenn du keinen mqqt server hast, kannst du auchWebrequests via „http request node“ auf den Shelly abfeuern:
wie z.B.: http://DEINESHELLYIP/relay/0?turn=toggle

Hier https://shelly-api-docs.shelly.cloud/#shelly1-1pm-relay-0 findest du eine Liste der verfügbaren Requests.

Hallo zusammen,

als kleines Projekt habe ich einen Flow zum Einschalten, per Wake On LAN (WOL), und zum Herunterfahren eines Servers, per ssh-Verbindung, erstellt.

Vorab möchte ich anmerken, dass sowohl für das Starten, als auch für das Herunterfahren, eines PC´s / Servers einige Voraussetzungen erfüllt werden müssen. Hauptsächlich beziehen sich diese auf den Rechner, der gestartet werden soll. Die Einstellungen sind teilweise betriebssystem- und gerätespezifisch, aber es finden sich viele Anleitungen im Internet. Wenn WOL bspw. per App vom Handy aus funktioniert, dann klappt es auch mit node red. Herunterfahren eines PC´s/Servers aus der Ferne ist relativ aufwändig, trotzdem möchte ich den Flow teilen, weil ich denke, der WOL-Part ist für den ein oder anderen anwendbar und vielleicht trifft der shutdown-Part auf Special-Interest.

Das Wecken sollte bei fast allen Geräten unter Berücksichtigung der individuellen Einstellungen funktionieren.
Das Herunterfahren wird ohne größere Anpassungen nur für Linux-basierende Systeme funktionieren.
Hier habe ich einige Anregungen her. Für diesen Flow gelten die selben Vorrausetzungen (beim Herunterfahren), wie im Link beschrieben:
Passwortlose Anmeldung per ssh -> Stichwort ssh-key
Passwortloses herunterfahren per sudo shutdown -h now.

[{"id":"ce477773.39eb78","type":"tab","label":"Server01","disabled":false,"info":""},{"id":"c8cf3f03.92101","type":"adv ping","z":"ce477773.39eb78","name":"Ping Server01","host":"192.168.178.101","x":300,"y":260,"wires":[["1dde2d2f.85a18b"]]},{"id":"771a0923.adb148","type":"inject","z":"ce477773.39eb78","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"10","crontab":"","once":true,"onceDelay":"0,1","topic":"","payload":"","payloadType":"date","x":110,"y":260,"wires":[["c8cf3f03.92101"]]},{"id":"afb1abe7.ec1fe8","type":"homeeDevice","z":"ce477773.39eb78","virtual-homee":"","name":"Server01","nodeId":"88","showNodeId":true,"profile":"10","icon":"nodeicon_tv","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":1605092483,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":88,"node_id":88}],"statusTemplate":"","x":660,"y":260,"wires":[["d8693d8b.4fea3"]]},{"id":"1dde2d2f.85a18b","type":"function","z":"ce477773.39eb78","name":"","func":"if (msg.payload === false)\nreturn {payload:{\"attribute\":{\"id\":88,\"value\":0}}}\nelse \nreturn {payload:{\"attribute\":{\"id\":88,\"value\":1}}}\n\npayload","outputs":1,"noerr":0,"initialize":"","finalize":"","x":480,"y":260,"wires":[["afb1abe7.ec1fe8"]]},{"id":"12874a4c.465efe","type":"wake on lan","z":"ce477773.39eb78","mac":"DE:AD:BE:EF:FE:ED","host":"192.168.178.255","udpport":9,"name":"Wecke Server01","x":1070,"y":200,"wires":[]},{"id":"d8693d8b.4fea3","type":"switch","z":"ce477773.39eb78","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":860,"y":260,"wires":[["12874a4c.465efe"],["37be68cc.d0093"]]},{"id":"2ee9019d.fac316","type":"change","z":"ce477773.39eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"'ssh ' & user & '@' & host & \t\" 'sudo shutdown -h now'\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1010,"y":400,"wires":[["503eac6c.eb7f0c"]]},{"id":"503eac6c.eb7f0c","type":"exec","z":"ce477773.39eb78","command":"","addpay":true,"append":"","useSpawn":"false","timer":"20","oldrc":false,"name":"Shutdown Server01","x":1240,"y":400,"wires":[[],[],[]]},{"id":"37be68cc.d0093","type":"function","z":"ce477773.39eb78","name":"User und IP","func":"if (msg.payload.targetValue == 0)\nmsg.host = \"192.168.178.101\";\nmsg.user = \"Karate-Tommy\";\nreturn msg\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":830,"y":400,"wires":[["2ee9019d.fac316"]]},{"id":"10d2ddb2.c1483a","type":"comment","z":"ce477773.39eb78","name":"Kommentar zu \"Ping Server01\"","info":"Host = IP des Zielrechners","x":310,"y":200,"wires":[]},{"id":"2866c348.da0694","type":"comment","z":"ce477773.39eb78","name":"Kommentar zu User und IP","info":"Zielrechner IP: msg.host = \"192.168.178.101\";\nZielrechner User: msg.user = \"Karate-Tommy\";","x":820,"y":460,"wires":[]},{"id":"c8359091.f9a6c","type":"comment","z":"ce477773.39eb78","name":"Kommentar zu Wecke Server01","info":"MAC Address = MAC-Adresse des Zielrechners\nTarget Address = Broadcast IP","x":1070,"y":140,"wires":[]}]

Ich habe ein paar Kommentare eingefügt um eine einfache Einbindung zu ermöglichen.

Wenn man den Zielrechner herunterfährt, kommt es in node red zu einer Fehlermeldung, weil die Verbindung zum Zielrechner verloren wird.

1 „Gefällt mir“

Ich habe einen alten hue Strip im Schrank gefunden und dann die hue Bridge mal wieder angeschlossen, um den zu nutzen.

@Micha
Ich habe mal deinen Flow von Github übernommen.
Habe es auch ans laufen bekommen, aber bekomme jetzt bei jedem Schalten mehrfach folgende Meldung und kann nichts damit anfangen. "msg : string[63] Invalid message. Please check the Readme/Wiki. Ignoring message "

Kannst du mir sagen, was ich da tun muss? :slight_smile:

Der Flow ist ja schon recht alt und daher muss hier der Payload an das vhih node auf das neue Format angepasst werden.

VG

ok, danke. Habe ich angepasst.
Nachricht ist weg, dafür kommt ne neue:

Id und value müssen numerisch sein. Die Nachricht wurde ignoriert.

Was mach ich nun?