Zeitschaltuhr - Uhrzeit aus CCU Variable

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
HA_Beginner
Beiträge: 80
Registriert: 19.01.2017, 08:16
Danksagung erhalten: 1 Mal

Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von HA_Beginner » 03.07.2020, 10:20

Hallo Leute,

würde gerne eine Schaltsteckdose zu einer bestimmten Uhrzeit ausschalten. Die Uhrzeit zu der dass geschehen soll, steht in einer CCU Variable.

Welche Timer Node könnt Ihr dafür empfehlen ?? und wenn ich die richtige Node benutze... wie bekomme ich dann aus der Variable diesen Wert in die richtige Position in der Node ??

Mein Wert ist hier zu finden.... valueEnumPrevious

payload.PNG
payload.PNG (7.49 KiB) 2064 mal betrachtet

Bin für jede Hilfe dankbar..

Danke im Voraus.

MfG

HA_Beginner

HenningK
Beiträge: 210
Registriert: 22.09.2012, 20:56
Hat sich bedankt: 5 Mal
Danksagung erhalten: 11 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von HenningK » 05.07.2020, 11:02

Ich nutze ganz gern https://flows.nodered.org/node/node-red ... -cron-plus.
In dem Flow unten musst du nur die "get variable" change node ersetzen durch entweder CCU node (Variable lesen) oder http get node.
Format sollte string hh:mm sein (Achtung: nicht h:mm). In der inject node ist "inject once" aktiviert (für den Fall, dass der Flow neu gestartet wird)

Code: Alles auswählen

[{"id":"9d9ccdcc.fae8b","type":"cronplus","z":"62cdb70e.b8cc78","name":"","outputField":"payload","timeZone":"Europe/Berlin","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[],"x":500,"y":620,"wires":[["8dd2dbcb.6bbcc8"]]},{"id":"8dd2dbcb.6bbcc8","type":"debug","z":"62cdb70e.b8cc78","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":637,"y":620,"wires":[]},{"id":"6490c0ea.592d1","type":"change","z":"62cdb70e.b8cc78","name":"convert to cron command","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $cs := $substring(payload, 3, 2) & \" \" & $substring(payload, 0, 2);\t   $cs := \"0 \" & $cs  & \" * * *\";\t   {\t       \"command\": \"add\",\t       \"name\": \"AusschaltSteckdose\",\t       \"expression\": $cs,\t       \"expressionType\": \"cron\",\t       \"payloadType\": \"default\"\t   }\t)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":620,"wires":[["9d9ccdcc.fae8b"]]},{"id":"de67886e.6d6858","type":"inject","z":"62cdb70e.b8cc78","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":310,"y":560,"wires":[["2a122f22.a063a"]]},{"id":"2a122f22.a063a","type":"change","z":"62cdb70e.b8cc78","name":"get variable","rules":[{"t":"set","p":"payload","pt":"msg","to":"10:55","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":560,"wires":[["6490c0ea.592d1"]]}]

HA_Beginner
Beiträge: 80
Registriert: 19.01.2017, 08:16
Danksagung erhalten: 1 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von HA_Beginner » 17.07.2020, 07:07

Hallo HenningK,

vielen Dank für den Tip.... mir fehlt ein bisschen die Zeit und Ruhe... deswegen erst jetzt die Antwort...

Also, habe gestern weiter damit rumgespielt...

Eine Frage habe ich : ich habe doch in valueEnum die gewünschte Uhrzeit zum Triggern (als String) bereits vorhanden... kann ich diesen String nicht direkt zum Triggern in CronPlus benutzen ?? wenn ja, wie ??

Würde mich freuen noch einmal von Dir zu hören...

Vielen Dank dafür.

MfG

HA_Beginner

HA_Beginner
Beiträge: 80
Registriert: 19.01.2017, 08:16
Danksagung erhalten: 1 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von HA_Beginner » 19.07.2020, 19:29

Hallo Leute,

jetzt habe ich es endlich (fast) geschafft...

Das Einzige was ich noch gerne haben würde ist, dass der Flow nur ausgeführt wird, wenn die Variable Zeitschaltung_Steckdose gleich TRUE ist...

Wie muss ich dass hier einbauen..??

Code: Alles auswählen

[{"id":"a83d7876.97f178","type":"tab","label":"Zeitschaltuhr Steckdose II","disabled":false,"info":""},{"id":"93e87ffa.af32b","type":"cronplus","z":"a83d7876.97f178","name":"Befehl senden","outputField":"payload","timeZone":"Europe/Berlin","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[],"x":700,"y":260,"wires":[["58eb16da.7f7888"]]},{"id":"301115f1.d52c12","type":"change","z":"a83d7876.97f178","name":"convert to cron command","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $cs := $substring(valueEnum, 3, 2) & \" \" & $substring(valueEnum, 0, 2);\t   $cs := \"0 \" & $cs  & \" * * *\";\t   {\t       \"command\": \"add\",\t       \"name\": \"Ausschaltzeit_Steckdose\",\t       \"expression\": $cs,\t       \"expressionType\": \"cron\",\t       \"payloadType\": \"default\"\t   }\t)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":260,"wires":[["93e87ffa.af32b"]]},{"id":"6d1ecf5d.b23bf","type":"ccu-sysvar","z":"a83d7876.97f178","name":"Ausschaltzeit_Steckdose","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":170,"y":300,"wires":[["70191fbe.93165","301115f1.d52c12"]]},{"id":"f192b7fa.a21cf8","type":"ccu-value","z":"a83d7876.97f178","name":"","iface":"HmIP-RF","channel":"0001D3C990BF92:3 PC Schaltsteckdose 3","datapoint":"STATE","mode":"","start":true,"change":false,"cache":false,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":1220,"y":260,"wires":[[]]},{"id":"58eb16da.7f7888","type":"change","z":"a83d7876.97f178","name":"Steckdose ausschalten ","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":950,"y":260,"wires":[["f192b7fa.a21cf8"]]},{"id":"70191fbe.93165","type":"debug","z":"a83d7876.97f178","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"valueEnum","targetType":"msg","x":470,"y":360,"wires":[]},{"id":"9a16e299.c45168","type":"ccu-sysvar","z":"a83d7876.97f178","name":"Zeitschaltung_Steckdose","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":170,"y":200,"wires":[[]]},{"id":"38263145.35ea0e","type":"ccu-connection","z":"","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""}]
Wäre für eure Hilfe dankbar.

MfG

HA_Beginner

MichaelV
Beiträge: 106
Registriert: 09.03.2016, 09:50
System: Alternative CCU (auf Basis OCCU)
Wohnort: Duisburg
Hat sich bedankt: 6 Mal
Danksagung erhalten: 3 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von MichaelV » 20.07.2020, 12:51

Beschreibe doch bitte mal, was genau Du erreichen möchtest. Wodurch wird die Steckdose eingeschaltet und wodurch wird die Ausschaltzeit bestimmt? Was für eine Schaltsteckdose hast Du? Mit Variable Zeitschaltung_Steckdose meinst Du eine Systemvariable in der CCU? Oder ein Wert aus den Kontextdaten in Node-Red? Wenn Du beim Einschalten schon weißt, wann wieder ausgeschaltet werden soll, dann kannst Du das direkt beim Einschalten mitgeben (wenn Deine Schaltsteckdose ON-TIME unterstützt).

Hier mal ein Beispiel: Mit Beginn der "blauen Stunde" soll die Beleuchtung im Carport eingeschaltet werden und um 23 Uhr wieder ausgeschaltet. Die Ausschaltzeit wird direkt beim Einschalten an den HM Aktor über ON_TIME mitgegeben. Eingeschaltet wird aber nur für mindestens 15 Minuten (ON_TIME > 900). Dafür brauchst Du nur einen Inject-Node, den Switch Node für das Prüfen der 15 Minuten und den CCU Value Node zum Schalten.

Code: Alles auswählen

[{"id":"c63fc2d5.46283","type":"time-inject","z":"266c6f96.b18d1","name":"","nameInt":"⏲ Blaue Abendstunde Begin = true","positionConfig":"","payload":"true","payloadType":"bool","payloadTimeFormat":"0","payloadOffset":"","payloadOffsetType":"none","payloadOffsetMultiplier":60000,"topic":"","injectTypeSelect":"time","intervalCount":1,"intervalCountType":"num","intervalCountMultiplier":60000,"time":"blueHourDuskStart","timeType":"pdsTime","offset":"","offsetType":"none","offsetMultiplier":60000,"timeEnd":"","timeEndType":"entered","timeEndOffset":0,"timeEndOffsetType":"num","timeEndOffsetMultiplier":60000,"timeDays":"*","timeOnlyOddDays":true,"timeOnlyEvenDays":true,"timeMonths":"*","timedatestart":"","timedateend":"","property":"","propertyType":"none","propertyCompare":"true","propertyThreshold":"","propertyThresholdType":"num","timeAlt":"","timeAltType":"entered","timeAltDays":"*","timeAltOnlyOddDays":true,"timeAltOnlyEvenDays":true,"timeAltMonths":"*","timeAltOffset":0,"timeAltOffsetType":"none","timeAltOffsetMultiplier":60000,"once":false,"onceDelay":0.1,"addPayload1":"on_time","addPayload1Type":"msg","addPayload1Value":"23:00","addPayload1ValueType":"entered","addPayload1Format":"7","addPayload1Offset":"","addPayload1OffsetType":"none","addPayload1OffsetMultiplier":60000,"addPayload1Next":true,"addPayload1Days":"*","addPayload2":"","addPayload2Type":"none","addPayload2Value":"23:00","addPayload2ValueType":"entered","addPayload2Format":"0","addPayload2Offset":"","addPayload2OffsetType":"none","addPayload2OffsetMultiplier":60000,"addPayload2Next":true,"addPayload2Days":"*","addPayload3":"","addPayload3Type":"none","addPayload3Value":"","addPayload3ValueType":"date","addPayload3Format":"0","addPayload3Offset":"","addPayload3OffsetType":"none","addPayload3OffsetMultiplier":60000,"addPayload3Next":true,"addPayload3Days":"*","recalcTime":2,"x":210,"y":920,"wires":[["3645a34f.c7edbc","d92020c5.4e958"]]},{"id":"3638227d.6fc7ce","type":"ccu-value","z":"266c6f96.b18d1","name":"Beleuchtung Carport","iface":"","channel":"","datapoint":"","mode":"","start":true,"change":true,"cache":false,"queue":false,"on":"on_time","onType":"msg","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":740,"y":900,"wires":[["d08aec1e.64ccc"]]},{"id":"3645a34f.c7edbc","type":"debug","z":"266c6f96.b18d1","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":430,"y":980,"wires":[]},{"id":"d08aec1e.64ccc","type":"debug","z":"266c6f96.b18d1","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":930,"y":900,"wires":[]},{"id":"d92020c5.4e958","type":"switch","z":"266c6f96.b18d1","name":"ON_TIME > 15 Minuten","property":"on_time","propertyType":"msg","rules":[{"t":"gte","v":"900","vt":"num"},{"t":"lt","v":"900","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":490,"y":920,"wires":[["3638227d.6fc7ce"],["3300b9eb.a6f126"]]},{"id":"3300b9eb.a6f126","type":"debug","z":"266c6f96.b18d1","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":690,"y":940,"wires":[]}]

HA_Beginner
Beiträge: 80
Registriert: 19.01.2017, 08:16
Danksagung erhalten: 1 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von HA_Beginner » 20.07.2020, 14:53

Hallo MichaelV,

also, die Steckdose wird einfach manuell eingeschaltet.. es geht halt darum, dass er das Abschalten der Steckdose NUR dann durchführen soll, wenn die CCU Variable Zeitschaltung_Steckdose auf TRUE steht... sonst soll er die Steckdose zu der Zeit die auch aus einer CCU Variable kommt halt nicht abschalten.

Ich setzte die gewünschte Ausschalt-Zeit über meine Mediola App (Slider mit Variable im Hintergrund).

Hoffe die Infos helfen weiter.

MfG

HA_Beginner

MichaelV
Beiträge: 106
Registriert: 09.03.2016, 09:50
System: Alternative CCU (auf Basis OCCU)
Wohnort: Duisburg
Hat sich bedankt: 6 Mal
Danksagung erhalten: 3 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von MichaelV » 20.07.2020, 16:22

Wann soll denn die Variable Zeitschaltung_Steckdose geprüft werden? Wenn die Steckdose eingeschaltet wird oder direkt vor dem Ausschalten?

HA_Beginner
Beiträge: 80
Registriert: 19.01.2017, 08:16
Danksagung erhalten: 1 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von HA_Beginner » 20.07.2020, 19:26

Hallo MichaelV,

also, da ich ja in der App jederzeit festlegen kann, zu welcher Uhrzeit die Steckdose abgeschaltet werden soll.. geht es mir eigentlich nur darum, dass er halt einfach vor dem Ausschalten prüft ob er überhaupt ausschalten soll.. oder nicht....

Hoffe es kommt verständlich rüber, was ich meine... also WENN VARIABLE auf TRUE ....dann schalte zu der Uhrzeit aus die ausgewählt ist... wenn auf FALSE dann nicht ausschalten ... egal welche Uhrzeit festgelegt ist....

Vielen Dank in jedem Fall...

HA_Beginner

MichaelV
Beiträge: 106
Registriert: 09.03.2016, 09:50
System: Alternative CCU (auf Basis OCCU)
Wohnort: Duisburg
Hat sich bedankt: 6 Mal
Danksagung erhalten: 3 Mal

Re: Zeitschaltuhr - Uhrzeit aus CCU Variable

Beitrag von MichaelV » 20.07.2020, 19:57

Hm, so ganz verstehe ich die Logik noch nicht.

Der einfachste Fall wäre: Wenn Du die Steckdose einschaltest, dann triggert das einen Flow der prüft, ob die Ausschaltautomatik eingeschaltet ist. Basierend auf der Ausschaltzeit würde dann die on_time gesetzt und alles andere passiert dann auf Deinem HMIP Aktor.

Wenn Du aber jederzeit nach dem Einschalten der Steckdose die Ausschaltzeit und die Automatik anpassen willst, dann wird es etwas komplizierter. Mal so ins blaue: Du speicherst die Werte der CCU Variablen im redmatic flow. Dann prüfst Du alle x Minuten, ob die Ausschaltzeit erreicht ist und die Automatik noch an ist und schaltest dann ggfs aus.

Soweit ich es verstanden habe, würde auch die vorgeschlagenen cron Lösung deine Logik nicht abdecken.

Antworten

Zurück zu „RedMatic“