Node-red integration

Hi,
ich wieder mal mit einer vielleicht blö… Frage. Ich hab jetzt mal meine Rolläden mit Shelly Aktoren ausgestattet (3Stück) die sollen im Wohnzimmer auch automatisch runterfahren, am besten nur bis auf 80%. Mit node-red hab ich da mal was aus dem Netz gefunden wo ich aber noch 2 Probleme feststelle. Das erste ist das dort die Rollos für eine gewisse Zeit aktiviert werden, das finde ich vielleicht noch raus wo man das in Prozent eintragen kann. Das wohl schwerwiegendere Problem ist, das nirgends erklärt wird wie man von node-red eine Automatisierung in HA Automatisierungen übernimmt. Vielleicht überseh ich etwas oder ich versteh es nicht so richtig. Es wird viel erklärt was man mit node-red machen kann aber nicht wie man das zu HA überträgt.

Da gibt es den Sensor Node.

Mit der “call service” node vom home assistant websocket kannst du alles in HA ansteuern:

Call Service | node-red-contrib-home-assistant-websocket (zachowj.github.io)

OK, nachdem ich mich jetzt mal durchgesucht hab, hab ich rausgefunden das man da noch so einiges installieren muss. Nur hab ich immer noch nicht rausgefunden wie ich sehen kann ob das erstellte auch in HA ausgeführt wird. Ist vielleicht für einige die damit schon länger arbeiten kein Problem, aber für mich der in Sachen Node-Red ein Neuling ist. Sonst hab ich immer mit der normalen Automation gearbeitet, aber bei komplexeren Sachen ist Node-Red wohl doch eine große Hilfe. Was halt nicht so richtig irgendwo erklärt ist, ist das man über HACS in der Integration node-red noch laden muss und dann in der Integration das ganze noch installieren. Jetzt sollte es eigentlich funktionieren nur wie kann man das testen oder sehen ob das, was man erstellt hat, aktiv ist, daß hab ich noch nicht rausgefunden.

Noch eine Ergänzung zu meinem Problem. So sieht der Flow in node-red aus:
nodered01
eine kleine Automation die das Rollo nach Sonnenuntergang runter fahren soll und nach Sonnenaufgang wieder hoch. Dafür hab ich einen Helfer erstellt, in dem 3 Rollos zusammengefasst sind. Leider hat die Automation nicht das gemacht was es soll nämlich nichts. Ich füg auch mal das Script bei damit das jeder der sich damit auskennt mal nachsehen kann was da nicht stimmt.

[{"id":"b061e59f35e948bf","type":"tab","label":"Rollo morgens/abends","disabled":false,"info":"","env":[]},{"id":"e36eabe66f4b9492","type":"suncron","z":"b061e59f35e948bf","name":"Rollos auf/zu","lat":"50.5956629","lon":"8.8339072","replay":false,"ejectScheduleOnUpdate":false,"sunrisePayload":"","sunrisePayloadType":"str","sunriseTopic":"","sunriseOffsetType":1,"sunriseOffsetHours":0,"sunriseOffsetMinutes":0,"sunriseOffset":0,"sunriseEndPayload":"","sunriseEndPayloadType":"str","sunriseEndTopic":"","sunriseEndOffsetType":1,"sunriseEndOffsetHours":0,"sunriseEndOffsetMinutes":0,"sunriseEndOffset":0,"goldenHourEndPayload":"","goldenHourEndPayloadType":"str","goldenHourEndTopic":"","goldenHourEndOffsetType":1,"goldenHourEndOffsetHours":0,"goldenHourEndOffsetMinutes":0,"goldenHourEndOffset":0,"solarNoonPayload":"","solarNoonPayloadType":"str","solarNoonTopic":"","solarNoonOffsetType":1,"solarNoonOffsetHours":0,"solarNoonOffsetMinutes":0,"solarNoonOffset":0,"goldenHourPayload":"","goldenHourPayloadType":"str","goldenHourTopic":"","goldenHourOffsetType":1,"goldenHourOffsetHours":0,"goldenHourOffsetMinutes":0,"goldenHourOffset":0,"sunsetStartPayload":"","sunsetStartPayloadType":"str","sunsetStartTopic":"","sunsetStartOffsetType":1,"sunsetStartOffsetHours":0,"sunsetStartOffsetMinutes":0,"sunsetStartOffset":0,"sunsetPayload":"","sunsetPayloadType":"str","sunsetTopic":"","sunsetOffsetType":1,"sunsetOffsetHours":0,"sunsetOffsetMinutes":0,"sunsetOffset":0,"duskPayload":"start","duskPayloadType":"str","duskTopic":"","duskOffsetType":1,"duskOffsetHours":0,"duskOffsetMinutes":"10","duskOffset":"600","nauticalDuskPayload":"","nauticalDuskPayloadType":"str","nauticalDuskTopic":"","nauticalDuskOffsetType":1,"nauticalDuskOffsetHours":0,"nauticalDuskOffsetMinutes":0,"nauticalDuskOffset":0,"nightPayload":"","nightPayloadType":"str","nightTopic":"","nightOffsetType":1,"nightOffsetHours":0,"nightOffsetMinutes":0,"nightOffset":0,"nadirPayload":"","nadirPayloadType":"str","nadirTopic":"","nadirOffsetType":1,"nadirOffsetHours":0,"nadirOffsetMinutes":0,"nadirOffset":0,"nightEndPayload":"","nightEndPayloadType":"str","nightEndTopic":"","nightEndOffsetType":1,"nightEndOffsetHours":0,"nightEndOffsetMinutes":0,"nightEndOffset":0,"nauticalDawnPayload":"","nauticalDawnPayloadType":"str","nauticalDawnTopic":"","nauticalDawnOffsetType":1,"nauticalDawnOffsetHours":0,"nauticalDawnOffsetMinutes":0,"nauticalDawnOffset":0,"dawnPayload":"ende","dawnPayloadType":"str","dawnTopic":"","dawnOffsetType":1,"dawnOffsetHours":0,"dawnOffsetMinutes":"10","dawnOffset":"600","x":130,"y":220,"wires":[["70b2b885d03740df"]]},{"id":"f84cfb10e5e3b1e1","type":"comment","z":"b061e59f35e948bf","name":"Rollosteuerung auf/zu","info":"","x":160,"y":100,"wires":[]},{"id":"70b2b885d03740df","type":"switch","z":"b061e59f35e948bf","name":"Auswertung","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"},{"t":"eq","v":"ende","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":370,"y":220,"wires":[["15540755e93db8bd"],["9d012187d411e223"]]},{"id":"15540755e93db8bd","type":"api-call-service","z":"b061e59f35e948bf","name":"Rollo zu","server":"49761872cda20bfb","version":5,"debugenabled":false,"domain":"cover","service":"close_cover","areaId":["wohnzimmer"],"deviceId":[],"entityId":["cover.rollos_wohnzimmer"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":620,"y":120,"wires":[[]]},{"id":"9d012187d411e223","type":"api-call-service","z":"b061e59f35e948bf","name":"Rollo auf","server":"49761872cda20bfb","version":5,"debugenabled":false,"domain":"cover","service":"open_cover","areaId":["wohnzimmer"],"deviceId":[],"entityId":["cover.rollos_wohnzimmer"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":620,"y":320,"wires":[[]]},{"id":"49761872cda20bfb","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"id","deviceSelector":"id","entitySelector":"id","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

kann in node-red importiert werden. Das ist auch der Grund für meine Frage wie man Flows in node-red testen kann ob sie funktionieren. Vielleicht ist hier doch noch jemand der sich damit gut auskennt und mir ein paar Tips geben kann.

Wenn eine Node ausgeführt wird, dann steht drunter an welchem Datum und um welche Uhrzeit

Wieso machst du das so kompliziert? In Home Assistant gibt es vom Werk aus eine Entität Sun (sun.sun) hiermit kannst du abfragen ob die Sonne unter oder oberhalb des Horizints ist, dann brauchst du auch keine Node Funktion mehr

Wenn du eine Automation ausprobieren möchtest und Triggern obwohl z.B die Sonne noch nicht unter dem Horizont ist, dann musst du als Trigger die Node Inject benutzenund die Trigger Node aus deiner Programmierung ersetzen. Nachdem du deine Programmierung deployd (übernommen) hast ist das Node Inject ein Taster welchen du direkt aus NodeRed aktivieren kannst und dein Programm wird ausgeführt.

Danke für den Tip. Ich hab sowieso gemerkt das ich da ein paar Fehler drin hatte und das ganze nochmal neu erstellt. Leider macht es noch nicht das was es soll. Die Rollos gingen nicht runter. Das mit dem testen hab ich auch ausprobiert und es hat mir eigentlich angezeigt, da die Rollos schon zu waren, das es die schliessen wollte. Mal sehen ob die morgen früh wieder hochgehen. Ist halt immer Versuch und Irrtum wenn man von dem ganzen nicht so viel Ahnung hat, aber man kann ja alles lernen.

Muss noch etwas ergänzen. Ich möchte gerne die Verschattung ausführen und hab die von Tristan übernommen. Leider hat er nur eine zeitliche Begrenzung in seinem Video, weil seine Rollos keine Prozentauswertung haben. Ich würde die aber lieber auf 80% runterfahren und deshalb weis ich nicht wo ich das einstellen kann. Im Call Service hab ich das nicht gefunden oder übersehen. Vielleicht hat ja jemand einen Tip wie man das anstellt.

Bei deiner Programmierung schaltest du ja dein Schalter über den CallService, schaltest denaber nicht wieder aus, man müsste ja theoretisch den Schalter über einen weiteren CallService deaktivieren. Um 80% Verschattung zu realisieren könnte man ja Stoppen wie Lange(Zeit in Sekunden) das Rollo bis zu den 80% braucht, zwischen der Aktivierung und der Deaktivierung eine Delay Node einbauen mit der zuvor gestoppten Zeit. Diese Programmierung ist bei einer Totmanschaltung, d.H solange der Schalter aktiviert ist fährt das Rollo. Wenn dein Rollo aber sozusagen über Taster funktioniert (Taster aktiviert und wieder deaktiviert und das Rollo fährt trotzdem) dann musst du 4 x CallService Nodes einprogrammieren: CallService Schalter an - CallService Schalter aus - Delay - CallService Schalter An - CallService Schalter aus.
Ich hoffe es ist verständlich erklärt

Du Könntest zusätzlich einen Magnetkontakt (Türkontakt z.B Aquara) einbauen um den Zustand des Rollos abfragen. Den Könnte man auch für die 80% Schließung verwenden: Wenn der Magnetkontakt zu ist beim Befehl Schließen dann soll das Rollo deaktiviert werden. Oder für den zustand ob das Rollo offen oder geschlossen ist. Oder für beides. Es gibt viele möglichkeiten :wink:

Vielen Dank, das hatte ich schon so realisiert, aber dann muss ich das doch so machen wie das bei Tristan vorgesehen ist und den delay einbauen. Muss dann noch für alle 3 Rollos die Zeit nehmen, denn ich hatte die zu einem Helfer zusammengeführt. Vielleicht laufen die ja gleich schnell, werd ich aber testen.

OK jetzt hab ich das so eingestellt und es funktioniert hoffentlich endlich mal.

[{"id":"48b1f2c163bd4291","type":"tab","label":"Rollo morgens/abends","disabled":false,"info":"","env":[]},{"id":"56fdddc62c91ec58","type":"comment","z":"48b1f2c163bd4291","name":"Rollosteuerung auf/zu","info":"","x":160,"y":100,"wires":[]},{"id":"6612574d06c2591a","type":"api-call-service","z":"48b1f2c163bd4291","name":"Rollo zu","server":"49761872cda20bfb","version":5,"debugenabled":false,"domain":"cover","service":"close_cover","areaId":["wohnzimmer"],"deviceId":[],"entityId":["cover.rollos_wohnzimmer"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":520,"y":320,"wires":[[]]},{"id":"7970fcd1ee76c588","type":"api-call-service","z":"48b1f2c163bd4291","name":"Rollo auf","server":"49761872cda20bfb","version":5,"debugenabled":false,"domain":"cover","service":"open_cover","areaId":["wohnzimmer"],"deviceId":[],"entityId":["cover.rollos_wohnzimmer"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":520,"y":200,"wires":[[]]},{"id":"71d721ce5fa80806","type":"server-state-changed","z":"48b1f2c163bd4291","name":"Rollos auf/zu","server":"49761872cda20bfb","version":5,"outputs":2,"exposeAsEntityConfig":"","entityId":"sun.sun","entityIdType":"exact","outputInitially":false,"stateType":"str","ifState":"above_horizont","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":170,"y":260,"wires":[["7970fcd1ee76c588"],["6612574d06c2591a"]]},{"id":"49761872cda20bfb","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"id","deviceSelector":"id","entitySelector":"id","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Ich muss mal sehen ob da nicht noch hinter dem jeweiligen hoch oder runter ein Stop angehangen werden muss, weil die zwar runtergefahren sind aber nicht wieder hoch. Mal sehen wie die sich heute verhalten.

Rollo hat wieder nicht geöffnet. Hab das ganze jetzt mal als zwei Teile gemacht, damit ich sehe ob das überhaupt funktioniert. Also einmal für auf und einmal für zu. Ich muss schon sagen das sehr viele mit node-red arbeiten und sehr komplizierte Programmierungen vornehmen, aber für die einfachen Sachen hat noch keiner so richtig was gemacht oder in einem Video das erklärt, schade… Ich werd ma weiter versuchen mich durch node-red ein zu arbeiten, vielleicht versteh ich es irgendwann.