Hallo,
Vorlage: Blockly zu steuern von z.B. 3 Shelly1 V3 mit Auto OFF Erhaltung SMARTE Version mit Listenfunktion
Wie gehabt..
Aufgabe:
- es darf nur 1 Shelly gleichzeitig aktiv sein! externe Schaltung über SW direkt oder APP etc. ist nicht überwacht da nur auf die Datenpunkte getriggert wird, wenn dann nur über die Datenpunkte schalten lassen! (sonst wirds noch dicker das Blockly)
- der aktive Shelly muss seine voreingestellte Zeit (Auto OFF) ablaufen können
- der Wechsel muss unterbrochen werden können, z.B. Also 1 ist aktiv, dann Start 2: der wartet das 1 fertig ist, dann aber Wechsel auf 3, somit 2 wartet nicht mehr, sondern 3 wartet das der 1 fertig ist.
- Not Stopp, alle Shelly ausschalten und Datenpunkte zurücksetzen auf false
In dieser Variante nutzte ich die Listenfunktion.
Das sieht erst mal "dick" aus, aber ist sehr nützlich, wenn man viele Shelly steuern will. Da spart man sich in diesem Fall die ganzen einzelnen Prüfblöcke.
Idee:
Ich sammel in einer Liste die Shellys die ich auslesen will und die Datenpunkte die ich Triggern / Überwachen will.
Dann werden die Listen gefiltert auf den Zustand true, und dann der Zustand (interne Variable) true dem Datenpunkt und oder Shelly-Link zugewiesen. Damit kann man dann Prüfen und reagieren lassen.
Datenpunkte werden wieder auf false gesetzt. Damit kann man prima auch ein bestimmten Shelly ausschalten, wenn er schon an ist.
und es gibt nur eine "Schleife" Zyklus.
Beim Import darauf achten das links unter Variable kein Müll geschrieben /importiert wird. Wenn da sehr viele Variablen auftauchen sollten mit Buchstabensalat (Zyxc2dsfDsdfgsawerfsdfg) die nicht im Blockly rechts auftauchen, diese einfach löschen.
Actions:
http://192.168.178.70:8087/set/0_userdata.0.Datenpunkte.Forum.Ventile-stop?value=true
http://192.168.178.70:8087/set/0_userdata.0.Datenpunkte.Forum.Ventil-1?value=true
http://192.168.178.70:8087/set/0_userdata.0.Datenpunkte.Forum.Ventil-2?value=true
http://192.168.178.70:8087/set/0_userdata.0.Datenpunkte.Forum.Ventil-3?value=true
Gesamt:
Bildschirmfoto vom 2021-06-05 23-06-02.png
1. Teil: Datenpunkte schreiben lassen, ggf, Ort und Name ändern. Links nicht vergessen einzutragen, Shelly und Datenpunkte.
Bildschirmfoto vom 2021-06-05 23-05-07.png
Teil2: Trigger auf die Datenpunkte der Ventile, wenn wahr dann werden die Listen erstellt und gefiltert + die internen Variablen gefüttert.
Bildschirmfoto vom 2021-06-05 23-05-19.png
Teil3: Prüfblock auf Basis der internen Variablen (aus Listen erstellt) und ggf. 1x Schleifen wenn ein andere Shelly aktiv ist.
1.Prüfblock ob der Shelly der geschalten werden soll schon auf true steht, ist das erfüllt wird er ausgeschalten.
sonstfalls: ob der Shelly der geschalten werden soll schon auf false steht: ist das erfüllt wird geprüft ob schon ein andere Shelly aktiv ist: wenn ja gehts in die Warteschleife.(hier kann man noch einen Zykluszähler einbauen, der bei Anzahl X die Warteschleife beendet)
sonstfalls: wenn Shelly false ist: wird der Shelly auf true gesetzt, wie gewünscht.
Bildschirmfoto vom 2021-06-05 23-31-46.png
Teil 4: Not Stop
Bildschirmfoto vom 2021-06-05 23-05-40.png
Blockly: