Modul 36_Shelly.pm

Begonnen von Prof. Dr. Peter Henning, 15 November 2018, 10:24:39

Vorheriges Thema - Nächstes Thema

noom0815

Hallo zusammen,

gibt es die Möglichkeit, für den Shelly1 einen "toggle" Befehl zu generieren?
Habe dazu leider nichts gefunden...


Danke und Grüße,
Ian

enno

#226
Zitat von: Prof. Dr. Peter Henning am 21 Mai 2019, 16:07:45
OK, ich habe die Version 2.0 des Shelly-Moduls eingecheckt.

In FHEM und im Shelly hat das Update geklappt. Nun wollte ich im Shelly 1 die neue Funktion nutzen:

In Shelly switch devices one may set URL values that are "hit" when the input or output status changes. Here one must set

    For Button switched ON url: http://<FHEM IP address>:<Port>/fhem?cmd=set%20$lt;Devicename>%20button_on%20[<channel>]
    For Button switched OFF url: http://<FHEM IP address>:<Port>/fhem?cmd=set%20$lt;Devicename>%20button_off%20[<channel>]
    For Output switched ON url: http://<FHEM IP address>:<Port>/fhem?cmd=set%20$lt;Devicename>%20out_on%20[<channel>]
    For Output switched OFF url: http://<FHEM IP address>:<Port>/fhem?cmd=set%20$lt;Devicename>%20out_off%20[<channel>]


Soweit ganz einfach, IP, Port und Devicename sind klar, aber wo bekomme ich den <channel> her?

Kann mir jemand auf die Sprünge helfen?

Gruss
  Enno

Edit: Ok, wer lesen kann. channel entfällt bei Shelly 1. Dann noch den Sonderzeichenkram gerade gezogen und schon geht es. Besten Dank für das Modul:
http://192.168.1.200:8083/fhem?cmd=set%20myShelly%20button_on

Einfacher FHEM Anwender auf Intel®NUC

dkreutz

Zitat von: enno am 22 Mai 2019, 20:00:58
Soweit ganz einfach, IP, Port und Devicename sind klar, aber wo bekomme ich den <channel> her?

Kann mir jemand auf die Sprünge helfen?

Die Kanäle werden bei Shelly ab 0 (Null) hochgezählt.
Raspberry Pi3B+ (Bullseye) / JeeLink868v3c (LaCrosse), nanoCUL433 (a-culfw V1.24.02), HM-MOD-UART (1.4.1), TEK603, MapleCUL / diverse Sensoren/Sender/Aktoren von Technoline, Intertechno, Shelly, Homematic und MAX!, Froggit Wetterstation, Luftdaten.info / Autor des fhem-skill für Mycroft.ai

nils_

Zitat von: enno am 22 Mai 2019, 20:00:58
Edit: Ok, wer lesen kann. channel entfällt bei Shelly 1. Dann noch den Sonderzeichenkram gerade gezogen und schon geht es. Besten Dank für das Modul:
der "Sonderzeichenkram" ist nen Typo im commandref teil des Modul. da steht ein $, müsste aber ein & sein.


muss pah korrigieren (oder sollen wir einen patch erstellen?)
viele Wege in FHEM es gibt!

studiosus12

Hallo
habe gestern meinen ersten RGBW shelly bekommen.
Verzweifelt versuche ich das teil zum laufen zu bringen. 2 Shelly 1 laufen bereits in FHEM perfekt, der neue RGBW ist im eigenen webinterfache direkt auch ansteuerbar.
Meine Definition sieht wie folgt aus:

define SHL_RGB_Stripes Shelly 192.168.178.75
attr SHL_RGB_Stripes event-on-change-reading .*
attr SHL_RGB_Stripes icon hue_filled_lightstrip
attr SHL_RGB_Stripes model shellyrgbw
attr SHL_RGB_Stripes room Shelly
attr SHL_RGB_Stripes webCmd rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off
attr SHL_RGB_Stripes widgetOverride rgb:colorpicker,RGB

Im eventmonitor sehe ich, dass FEHM die richtigen befehle herausschickt. Leider tut sich am modul nichts.
1. Ist die Definition so richtig oder fehlt etwas ?
2. Muss ggf der shelly noch geflasht werden oder funktioniert normalerweise die Original FW bei beim Shelly 1?
3. Stehe ich komplett auf dem Schlauch ?

Danke und Grüße,
Mark





Cluni

Moin zusammen!

Habe auch gestern etwas gefrickelt, bis ich es am Laufen hatte. Problem ist natürlich, dass man auch Username, Passwort und csrf-Token mit übergeben muss, wenn diese im System gesetzt sind. Der Aufruf muss dann beispielsweise für button_on wie folgt aussehen:

http://<Username>:<Password>@<IP>:<Port>/fhem?cmd=set%20<Shellyname>%20button_on&fwcsrf=<csrf_Token>&XHR=1

Komischerweise bekomme ich aber beim Abspeichern der Adressen im Shelly eine Fehlermeldung "Error! Url not saved". Trotzdem werden die Adressen richtig abgespeichert und die Rückmeldung funktioniert. Ich werde das Dimitar mal schreiben - denke das ist ein Bug bzw Schönheitsfehler in der Firmware.

@pah: Ist es eigentlich ratsam, dass man nun den Intervall auf 0 setzt, oder sollte man das Polling (ggf. mit größerer Zeit, z.B. 180) doch noch zur Sicherheit (falls mal eine Meldung verloren geht) drin lassen? Merkt man bei Intervall = 0 ggf. nicht, wenn der Shelly aus irgendeinem Grund offline sein sollte?

Nun habe ich noch eine andere Überlegung zum Thema "Alten Bewegungsmelder smart machen" (habe es noch nicht ausprobiert - sind nur Vorüberlegungen, ob das überhaupt schon so geht, wie ich es gerne hätte):
Ich würde den Bewegungsmelder so einstellen wollen, dass ich auch am Tag die Bewegung zurück gemeldet bekomme, um z.B. das aktuelle Bild der Kamera per Telegram zu schicken. Logischerweise möchte ich natürlich nicht, dass tagsüber dann auch das Licht am Hauseingang eingeschaltet wird. Nun ist meine Überlegung den Button Type auf "Detached Switch" zu setzen. Ist es in deinem Modul möglich, dass man dann auf den Eingang (an dem hängt dann der Bewegungsmelder) reagiert und per Fhem den Ausgang (hier wird die Beleuchtung angeschlossen) des gleichen Shelly schaltet?

Ich kann es nur nochmal sagen: Vielen Dank für dieses tolle Modul. Es vereinfacht die Sache ungemein!

Cluni

@studiosus12: Hat dein Shelly ein Username und Passwort? Hast du die im Device in Fhem gesetzt? Was sagt der Status vom Device?

nils_

Zitat von: Cluni am 23 Mai 2019, 09:36:07
Problem ist natürlich, dass man auch Username, Passwort und csrf-Token mit übergeben muss, wenn diese im System gesetzt sind. Der Aufruf muss dann beispielsweise für button_on wie folgt aussehen:

http://<Username>:<Password>@<IP>:<Port>/fhem?cmd=set%20<Shellyname>%20button_on&fwcsrf=<csrf_Token>&XHR=1
das könnte man ja mit einem eigenen allowed (für die shellys) umgehen, oder?
viele Wege in FHEM es gibt!

Cluni

Hmmmm - da könntest du Recht haben. Das habe ich mir aber ehrlich gesagt noch nicht angesehen. Ich mache das grundsätzlich so kompliziert.... :P

nils_

einfach kann ja jeder  ;) ;D ;D ;D
viele Wege in FHEM es gibt!

WhyTea

Hallo

Ich habe zwei Dinge.
Zum Einen habe ich das Problem das Fhem das hinterlegte Passwort bei jedem "shutdown restart" vergisst.
Die shellys haben dann immer state:error. Durch ein erneutes setzen des Passworts wird state wieder korrekt ermittelt. Bis zum nächsten "shutdown" :-(

Zum Anderen habe ich eine Bitte / einen Wunsch!
Aktuell wird bei einem shelly1pm die aktuell anliegende Last in Watt in dem Reading "power" angezeigt. Das ist auch super. Es wäre aber wunderbar wenn auch der Verbrauch in einem Reading angezeigt werden würde. Der Shelly1pm hat einen Counter dafür welcher "nur" ausgelesen werden müsste.

Hier die http://ipdesshellys/settings als Rohdaten:
{"device":{"type":"SHSW-PM","mac":"DC4F2260903D","hostname":"shelly1pm-60903D","num_outputs":1,"num_meters":1},"wifi_ap":{"enabled":false,"ssid":"shelly1pm-60903D","key":""},"wifi_sta":{"enabled":true,"ssid":"xxxxx","ipv4_method":"static","ip":"xxxxx","gw":"xxxxxx","mask":"xxxxxxx","dns":"xxxxxx"},"wifi_sta1":{"enabled":false,"ssid":null,"ipv4_method":"dhcp","ip":null,"gw":null,"mask":null,"dns":null},"mqtt": {"enable":false,"server":"192.168.33.3:1883","user":"","reconnect_timeout_max":60.000000,"reconnect_timeout_min":2.000000,"clean_session":true,"keep_alive":60,"will_topic":"shellies/shelly1pm-60903D/online","will_message":"false","max_qos":0,"retain":false,"update_period":30},"sntp": {"server":"xxxxx"},"login":{"enabled":true,"unprotected":false,"username":"xxxx","password":"xxxx"},"pin_code":"","coiot_execute_enable":false,"name":"","fw":"20190522-070715/v1.5.0@a5e1e3f8","build_info":{"build_id":"20190522-070715/v1.5.0@a5e1e3f8","build_timestamp":"2019-05-22T07:07:15Z","build_version":"1.0"},"cloud":{"enabled":false,"connected":false},"timezone":"Europe/Berlin","lat":50.110901,"lng":8.682130,"tzautodetect":false,"time":"10:47","hwinfo":{"hw_revision":"prod-190329", "batch_id":1},"max_power":3500,"mode" :"relay","relays":[{"name":null,"ison":true,"has_timer":false,"default_state":"off","btn_type":"toggle","btn_reverse":0,"auto_on":0.00,"auto_off":0.00,"btn_on_url":null,"btn_off_url":null,"out_on_url":null,"out_off_url":null,"schedule":false,"schedule_rules":[],"max_power":3500}],"meters":[{"power":6.06,"is_valid":true,"timestamp":1558608426,"counters":[6.102, 6.084, 6.098],"total":1824}]}

Ganz zum Ende steht: total:1824. In dem total-Counter wird jede Minute die aktuell anliegende Last in Watt aufaddiert. Wenn man diesen Wert durch 60 teilt erhällt man die gesamt verbrauchten Wattstunden.

Danke und Gruß
Daniel

Prof. Dr. Peter Henning

#236
Zitatgibt es die Möglichkeit, für den Shelly1 einen "toggle" Befehl zu generieren?
Ich weiß zwar nicht, was "generieren" bedeuten soll, aber einen toggle-Befehl kann ich einbauen.

Zitatmuss pah korrigieren (oder sollen wir einen patch erstellen?)
Kriegt er gerade noch so hin...

Zitat
Komischerweise bekomme ich aber beim Abspeichern der Adressen im Shelly eine Fehlermeldung "Error! Url not saved". Trotzdem werden die Adressen richtig abgespeichert und die Rückmeldung funktioniert. Ich werde das Dimitar mal schreiben - denke das ist ein Bug bzw Schönheitsfehler in der Firmware.
Kann sein, dass das noch ein Bug in der Firmware ist - in der 1.5rc3 hatten sie ihn noch so drin, dass nicht einmal das "&" abgespeichert wurde.

Zitat@pah: Ist es eigentlich ratsam, dass man nun den Intervall auf 0 setzt, oder sollte man das Polling (ggf. mit größerer Zeit, z.B. 180) doch noch zur Sicherheit (falls mal eine Meldung verloren geht) drin lassen? Merkt man bei Intervall = 0 ggf. nicht, wenn der Shelly aus irgendeinem Grund offline sein sollte?
ich lasse das generell drin - eben wegen dem "offline". Und beim Rollladenaktor braucht man das sowieso.

ZitatIst es in deinem Modul möglich, dass man dann auf den Eingang (an dem hängt dann der Bewegungsmelder) reagiert und per Fhem den Ausgang (hier wird die Beleuchtung angeschlossen) des gleichen Shelly schaltet?
Klar. Schau Dir mal im Event-Monitor an, wann beim Tastendruck die Readings button[_x] und relay[_x] gesetzt werden. Das geht im detached mode komplett unabhängig voneinander. Und da Tastendruck und Tastenloslassen separate Events sind (allerdings nicht beim ShellyPlug S), kann man mit einem Schalter (Taster) sogar wie bei Homematic verschiedene Vorgänge auslösen.

Zitat1. Ist die Definition so richtig oder fehlt etwas ?
Ja, Nein.
Zitat2. Muss ggf der shelly noch geflasht werden oder funktioniert normalerweise die Original FW bei beim Shelly 1?
Nein, Ja
Zitat3. Stehe ich komplett auf dem Schlauch ?
Woher soll ich denn das wissen?

ZitatEs wäre aber wunderbar wenn auch der Verbrauch in einem Reading angezeigt werden würde.
Mach ich.

LG

pah

Cluni

Zitat von: Prof. Dr. Peter Henning am 23 Mai 2019, 15:40:59
Klar. Schau Dir mal im Event-Monitor an, wann beim Tastendruck die Readings button[_x] und relay[_x] gesetzt werden. Das geht im detached mode komplett unabhängig voneinander. Und da Tastendruck und Tastenloslassen separate Events sind (allerdings nicht beim ShellyPlug S), kann man mit einem Schalter (Taster) sogar wie bei Homematic verschiedene Vorgänge auslösen.

Ja das ist ja wirklich geil. Ich hatte gestern auf dem Heimweg von der Arbeit darüber nachgedacht, ob ich das überhaupt mit einem einzigen Shelly 1 für Bewegungsmelder / Beleuchtung so hinbekomme. Zur Not hätte ich es halt mit einem Shelly 2 gemacht - Eingangs auf 1 und Ausgang auf 2. Aber so ist natürlich um Längen eleganter... ;)

Prof. Dr. Peter Henning

Ich habe gerade Version 2.01 eingecheckt, mit den genannten Ergänzungen. Achtung: energy als Reading (in Ws) gibt es nicht bei allen Devices, z.B. nicht beim RGBW2

Im Prinzip müsste ich jetzt noch den Befehl "get ... registers" anpassen. Das muss aber warten, habe außer FHEM und Golfspielen noch anderes zu erledigen...

LG

pah

Cluni

So, ich habe eben mit Dimitar per Whatsapp geredet. Er kannte diesen Fehler noch nicht, aber seine Techniker konnten das Problem nach wenigen Versuchen nachvollziehen. Der Fehler betrifft anscheinend nur den Shelly 1 und soll bis Ende nächster Woche behoben werden.

Man kann nur es immer wieder betonen: Die Jungs und deren Support sind phänomenal!

Ich weiß - dieser Post gehört eigentlich in den Hardware-Thread, aber da es hier im Verlauf aufgetreten ist habe ich mich für die Antwort hier entschieden...