Shelly per Aufgabenplaner Ein-/Ausschalten

Rainer86

Benutzer
Mitglied seit
05. Aug 2023
Beiträge
79
Punkte für Reaktionen
1
Punkte
8
Ich weiß nicht was für Vorkenntnisse du hast, aber du könntest (falls es noch nicht installiert ist, dann installieren) mit jq das json ein einem bash Script auswerten.
Leider sagt mir das alles nix, wüsste auch nicht, wie ein Script dazu aussehen könnte, hast du ei Beispiel ?
 

66er

Benutzer
Mitglied seit
25. Sep 2023
Beiträge
172
Punkte für Reaktionen
101
Punkte
99

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Wäre aber eine Überlegung wert, wenn man komplexer Automatisierung einrichten will. Nur mit Scripten wird es eventuell eher unübersichtlich. Aber das ist ja Geschmackssache:)
 

66er

Benutzer
Mitglied seit
25. Sep 2023
Beiträge
172
Punkte für Reaktionen
101
Punkte
99
Genau.

Jeder nach seinem Gusto. ;)
 

Kurt-oe1kyw

Benutzer
Sehr erfahren
Mitglied seit
10. Mai 2015
Beiträge
9.139
Punkte für Reaktionen
1.778
Punkte
314
Nur mit Scripten wird es eventuell eher unübersichtlich
Ja da hast du natürlich Recht, es war damals eigentlich eher die Neugierde ob und wie es möglich wäre mit dem Synology Aufgabenplaner einen Befehl auf ein shelly zu senden und ob der dort auch "funktioniert" / ausgeführt wird, bzw. hatte damals jemand angefragt ob das überhaupt schon jemand gemacht hat.N.m.W. hat sich der TO auch nicht dazu geäussert für welchen Praxiseinsatz das verwendet werden soll.
Zum Ausschalten einer Synology welche über einen shelly Plug angesteckt ist geht ja, aber das Einschalten wird halt dann nicht mehr über den Aufgabenplaner der Synology funktionieren :)

Vor allem machen diese shellys ja süchtig. Man beginnt mit einem einfach "Schalt dich ein" oder "Schalt dich aus" Befehl und dann wird man neugierig und will noch die Zeit dazu haben, also schalte dich ein für 5 Minuten und dann schalte dich wieder ab usw usw eine unendliche Spielwiese ;)
das geht auch über Synology hinaus...

Im Grunde geht es darum ob irgendein "Teil" mit seinen Befehlen/webhooks/actionURLs usw in der Lage ist den Befehl so zu senden dass ein shelly den entsprechenden Befehl dann umsetzt, ob das jetzt ein Automationsprogramm ist oder ein Bewegungsmelder irgendeines Herstellers ist egal.
Wie erwähnt es beginnt mit einem harmlosen herumspielen und Schalt dich ein/aus bis hin zu den verrücktesten Sachen wie lass einen hellen weißen RGBW LEDstreifen der mit 100% gleisendem Licht strahlt durch einen Befehl Umschalten auf "leuchte in grün mit 1% Helligkeit für die Dauer von 10 Sekunden und geh dann aus" - ja das ist verrückt und Männerspielerei, ich sagte ja es ging nur darum ob es überhaupt möglich ist.
Für interessierte JA mit einem RGBW2 von shelly geht es :)
Ihr müsst aber den weissen Kanal mitnehmen sonst überstrahlt er weiterhin die farbigen LEDs, mit aktueller FW von RGBW2 klappt es dann mit:
http://<IP_shelly/color/0?white=0&red=0&blue=0&yellow=0&green=255&turn=on&gain=1&timer=10
😃

Wenn der RGBW2 durch Kennwort gesichert ist, dann packt noch User und PW dazu:
http://username:geheimes_kennwort@IP_shelly/color/0?white=0&red=0&blue=0&yellow=0&green=255&turn=on&gain=20&timer=20

auf der RGBW2 Oberfläche erscheint dann durch den oberen Befehl 20% Helligkeit in Grün für die Dauer von 20 Sekunden:
shelly_rgbw2_actionurl.png
 
Zuletzt bearbeitet:
  • Like
Reaktionen: 66er

66er

Benutzer
Mitglied seit
25. Sep 2023
Beiträge
172
Punkte für Reaktionen
101
Punkte
99
für welchen Praxiseinsatz
Was mir spontan für User ohne übergeordnetes System (ioBroker,Fhem...) einfällt, ist z.B. eine simpelste Anwesenheitssimulation im Urlaub (Licht ein/aus) als Aufgabe,die nach dem Urlaub deaktiviert wird.

Beim nächsten Urlaub einfach wieder aktivieren.

Keine einzelne Shelly mehr umprogrammieren. ;)
(ok, geht auch über Cloud, aber die nutzt ja nicht jeder )
 
  • Like
Reaktionen: Kurt-oe1kyw

Kurt-oe1kyw

Benutzer
Sehr erfahren
Mitglied seit
10. Mai 2015
Beiträge
9.139
Punkte für Reaktionen
1.778
Punkte
314
Ja wie gesagt, eine unendliche Spielwiese, ich hab mal meine try/error Versuche mit einem RGBW2 im oberen Beitrag ergänzt bis ich zum erwünschten Ergebnis gekommen bin :)
 

66er

Benutzer
Mitglied seit
25. Sep 2023
Beiträge
172
Punkte für Reaktionen
101
Punkte
99
  • Like
Reaktionen: Kurt-oe1kyw

66er

Benutzer
Mitglied seit
25. Sep 2023
Beiträge
172
Punkte für Reaktionen
101
Punkte
99
Da ich ja beim Einrichten als Newbie auch ins Stolpern kam, habe ich hier eine detaillierte Step by Step-Anleitung geschrieben.

( Ehrensache, dass ich nach hier verlinkt habe. )

Vielleicht hilft das ja dem ein oder anderen, der sich dafür interessiert. ;)

Ich danke auch an dieser Stelle nochmal alle, die mir hier geholfen haben. (y)
 

Rainer86

Benutzer
Mitglied seit
05. Aug 2023
Beiträge
79
Punkte für Reaktionen
1
Punkte
8
Da die Shellys per WLAN funktionieren, wäre es doch hilfreich den Rückgabewert zu prüfen, ob auch geschaltet wurde, nur wie kann das ausgewertet werden ?

Ison:true-> Wenn nicht, nochmal den Einschaltbefehl senden

Rückgabewert ist: {"ison":true,"has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"overpower":false,"source":"http"}
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Leider sagt mir das alles nix, wüsste auch nicht, wie ein Script dazu aussehen könnte, hast du ei Beispiel
Da ich keine Shelly habe, kann ich leider kein Script erstellen bzw. es nicht testen.
Ich kann später es mal probieren in dem ich mir die Response oben kopiere und es mocke...
 
  • Like
Reaktionen: 66er

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
nur wie kann das ausgewertet werden ?
Den Curlbefehl direkt an jq weiterleiten (pipe). Um den Wert von ison zu bekommen, müsste es so funktionieren:
Code:
curl BEFEHL | jq -r ".ison"
Dann noch mit dem Ergebnis eine if then Abfrage.

Ungetestet, da alle Steckdosen und Co. bei mir mit Tasmota laufen (was ich nur empfehlen kann).
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
@peterhoffmann hat ja schon alles nötige dafür geschrieben. Das wäre dann sowas:

Bash:
result=$(curl 'http://IP-Shelly/relay/0?turn=on' | jq -r ".ison")
if [ !"$result" ] ; then
    curl 'http://IP-Shelly/relay/0?turn=on'
fi
Wenn man das jetzt immer wieder probieren will, bis es aus ist, dann muss man das bisschen umstrukturieren.

Ungetestet, da alle Steckdosen und Co. bei mir mit Tasmota laufen (was ich nur empfehlen kann).
Ich bin auch kein Fan von SmartHome Geräten die nur mit ihrer eigenen Cloud daher kommen. Ich möchte gar keine Cloud dafür nutzen.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
Wenn man das jetzt immer wieder probieren will, bis es aus ist, dann muss man das bisschen umstrukturieren.
Eine Endlosschleife wäre fatal, eher mit einem Zähler (z.B. 5 Versuche), dazwischen jeweils ein sleep x um dem Shelly auch die Zeit zu geben wieder erreichbar zu sein.
Und falls es nach 5 Versuchen immer noch nicht geht, vielleicht verknüpft mit einer Nachricht (E-Mail, Messenger, etc.).
 
  • Like
Reaktionen: alexhell

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Ja, das war auch mein Gedanke. Aber ohne Shelly ist das doof zu testen. Sonst würde ich auch sagen 3-5 mal probieren und wenn es nicht geht, dann hat man ein anderes Problem.
Ich weiß auch nicht wie sich das Script gerade verhält, wenn die Shelly nicht erreichbar ist. Also kein JSON zurück kommt, sondern vielleicht ein Timeout oder sonst was.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
wie sich das Script gerade verhält, wenn die Shelly nicht erreichbar ist
Es gibt nach dem Timeout "null" oder nichts zurück, sprich kein "true". Das wäre also kein Problem, da das Script die Anzahl an Versuchen weiter durchführt.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Achso mein Gedanke war, weil jq vielleicht meckert, wenn es keinen JSON bekommt.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
Wenn man curl mit --silent ausführt, meckert curl und jq nicht, wenn keine Antwort (Timeout) kommt.
In der Regel wird eine richtige oder keine Antwort kommen. In beiden Fällen also kein Problem.

Kommt wiederum eine Antwort, die jq nicht schmeckt, kommt ein parse error: Invalid numeric literal at line 1, ... (usw.)
Aber auch das sollte auch kein Problem sein, da die Antwort auch nicht "true" ist.
 
  • Like
Reaktionen: alexhell

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Danke für die Aufklärung. Ich hab nur bisschen Grundwissen was Shell Scripting angeht. Befasse mich damit immer nur, wenn ich für mich was vereinfachen will :)
 

66er

Benutzer
Mitglied seit
25. Sep 2023
Beiträge
172
Punkte für Reaktionen
101
Punkte
99
Ich bin auch kein Fan von SmartHome Geräten die nur mit ihrer eigenen Cloud daher kommen. Ich möchte gar keine Cloud dafür nutzen.
Na, dann ist Shelly ja genau das Richtige für Dich! (mit der Originalfirmware!)

Kein Shelly in meinem Produktivsystem hat je die Cloud gesehen. Internetzugang ist gesperrt, ausser ich möchte ein Update machen.

Bin auch ein Freund lokalen Betriebs. ;)

Für kleinere Schaltbefehle braucht es noch nicht mal zwingend ein übergeordnetes, lokales Hausautomationssystem, das sich die Geräte per http-Request selber steuern können.

MQTT geht ebenfalls.
 
Zuletzt bearbeitet:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat