Modul 36_Shelly.pm

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

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Hm - wundert mich. Sicher, dass die oben gepostete aktuelle (Test-)Version des Moduls aktiv ist?

Denn in dem JSON-Code taucht der Wert

Zitat"meters": [{
        "power": 41.95,
        "overpower": 0,
        "is_valid": true,
        "timestamp": 1606830543,
        "counters": [
            10.281,
            0,
            0
        ],
        "total": 948
    }],

auf, und wird vom Modul in der Zeile

Zitat$power     = $jhash->{'meters'}[$i]{'power'};
mit $i=0 abgefragt.

LG

pah

JWRu

Sorry - es war noch die Version von gestern 17:30 Uhr aktiv.
Mit der Version von heute ist das Reading "power" aufgetaucht und wird auch gefüllt.
Vielen Dank!
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Prof. Dr. Peter Henning

OK, dann bitte noch ein Test mit der angehängten Version - die holt sich auch das korrekte Reading für energy, und ein Setzen sollte auch möglich sein.

Allterco Robotics hat hier eine üble Inkonsistenz im API - das Array heißt einmal "lights" und einmal "light".

LG

pah

JWRu

ZitatOK, dann bitte noch ein Test mit der angehängten Version - die holt sich auch das korrekte Reading für energy, und ein Setzen sollte auch möglich sein.
Reading "energy" ist da und wird gefüllt.
Wie man das setzt, weiß ich nicht - in der Dropdown-Liste für "set" taucht nichts auf.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Prof. Dr. Peter Henning

Neinnein - das wird nicht gesetzt, sonder ist die über die Zeit integrierte Leistung.

LG

pah

JWRu

Ok, habe ich falsch verstanden - wird vom Gerät gesetzt.
Damit geht jetzt alles ... bis auf get registers ;-) - brauche ich aber nicht.
Vielen Dank nochmal!
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

JWRu

#636
Ich habe jetzt doch noch ein anderes Problem mit dem Dimmer:
Da ich den Dimmer auch lokal über Taster bedienen will, habe ich die "Hit"-URLs im Shelly gesetzt.
Die Befehle kommen auch in FHEM an. Wenn ich den Shelly über den Taster schalte, kommt im Event Monitor so etwas an:
2020-12-02 16:06:47 Shelly ShellyDimmer01 button_: on
2020-12-02 16:06:48 Shelly ShellyDimmer01 button_: off
2020-12-02 16:06:48 Shelly ShellyDimmer01 out_on
2020-12-02 16:06:52 Shelly ShellyDimmer01 button_: on
2020-12-02 16:06:53 Shelly ShellyDimmer01 button_: off
2020-12-02 16:06:53 Shelly ShellyDimmer01 out_off

Am State des FHEM Device tut sich aber nichts, das wird erst beim nächsten periodischen Update aktualisiert.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Prof. Dr. Peter Henning

Zitat... bis auf get registers ;-)

Wieso? Das sollte gehen.


ZitatAm State des FHEM Device tut sich aber nichts, das wird erst beim nächsten periodischen Update aktualisiert.

Natürlich nicht - warum auch, wenn der Button u.U. etwas ganz Anderes schalten soll? Das muss man schon mit einem notify entsprechend abfangen.

LG

pah

JWRu

ZitatWieso? Das sollte gehen.
Beim Dimmer erhalte ich keine Registernamen zurück, beim Plug sehr wohl (siehe angehängte Bildschirmfotos).

Ich brauche die Button-Rückmeldung eigentlich nicht - die hatte ich nur zum Testen aktiviert.
Ich hatte mir vorgestellt, dass ich mit der Out-URL das FHEM-Device dazu bringen könnte, die Werte sofort zu aktualisieren und nicht erst nach INTERVALL Sekunden.
Ich kann ja auch mit einem notify wohl keine sofortige Aktualisierung anstoßen.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Prof. Dr. Peter Henning

ZitatIch hatte mir vorgestellt, dass ich mit der Out-URL das FHEM-Device dazu bringen könnte, die Werte sofort zu aktualisieren und nicht erst nach INTERVALL Sekunden.

Natürlich geht das. In den REST-Call vom Shelly-Button an FHEM einfach einbauen "setreading <Device> state off" oder on.


LG

pah

JWRu

#640
So einfach geht es nicht. Immer, wenn sich der Ausgang ändert, kommt "out_on". Also auch, wenn der Dimmer schon an ist und man dimmt.
Leider habe ich aber in dem Rest-Call keine Zugriff auf "pct" bzw. "brightness". Den Wert hätte ich gerne auch aktuell, nicht nur state.

P.S. Mit ist doch noch eine "Holzhammer-Methode" eingefallen: Ein notify auf "out_on" setzt kurzzeitig das Attribut "interval" auf 1 und dann wieder auf den Standardwert.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Prof. Dr. Peter Henning

Nicht doch, es reicht das Kommando "get status".

LG

pah

JWRu

#642
Zitates reicht das Kommando "get status".
Dann kommt ein Popup-Fenster, das weggeklickt werden muss.

P.S Ich hab's jetzt mit einem notify gelöst, funktioniert super:
define notify_ShellyDimmer_refresh notify ShellyDimmer.*:out_.* attr $NAME interval 1;; sleep 1;; attr $NAME interval 60;; save
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

KyleK

Hallo,

ich hab gestern einen Shelly 1 in Betrieb genommen und in FHEM eingebunden:

Internals:
   DEF        192.168.178.73
   DURATION   0
   FUUID      5fc7b7d0-f33f-9ecb-769f-b7ce62778d38d763
   INTERVAL   60
   NAME       shelly.Balkon
   NR         385
   STATE      off
   TCPIP      192.168.178.73
   TYPE       Shelly
   OLDREADINGS:
   READINGS:
     2020-12-02 16:50:40   cloud           disabled
     2020-12-02 16:50:40   firmware        v1.9.0
     2020-12-02 22:33:37   network         <html>connected to <a href="http://192.168.178.73">192.168.178.73</a></html>
     2020-12-03 07:11:32   relay           off
     2020-12-03 07:11:32   state           off
Attributes:
   event-on-change-reading .*
   model      shelly1
   webCmd     :


Leider habe ich jetzt minütlich eine Warnung im Logfile:

2020.12.03 09:36:47 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4818.
2020.12.03 09:36:47 1: stacktrace:
2020.12.03 09:36:47 1:     main::__ANON__                      called by fhem.pl (4818)
2020.12.03 09:36:47 1:     main::readingsBulkUpdateIfChanged   called by /opt/fhem/FHEM/36_Shelly.pm (965)
2020.12.03 09:36:47 1:     main::Shelly_status                 called by /opt/fhem/FHEM/36_Shelly.pm (919)
2020.12.03 09:36:47 1:     main::__ANON__                      called by /opt/fhem/FHEM/HttpUtils.pm (639)
2020.12.03 09:36:47 1:     main::__ANON__                      called by fhem.pl (752)
2020.12.03 09:37:48 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4818.
2020.12.03 09:37:48 1: stacktrace:
2020.12.03 09:37:48 1:     main::__ANON__                      called by fhem.pl (4818)
2020.12.03 09:37:48 1:     main::readingsBulkUpdateIfChanged   called by /opt/fhem/FHEM/36_Shelly.pm (965)
2020.12.03 09:37:48 1:     main::Shelly_status                 called by /opt/fhem/FHEM/36_Shelly.pm (919)
2020.12.03 09:37:48 1:     main::__ANON__                      called by /opt/fhem/FHEM/HttpUtils.pm (639)
2020.12.03 09:37:48 1:     main::__ANON__                      called by fhem.pl (752)


Ich hab gelesen dass andere dieses Problem nur beim Neustart hatten, aber das ist hier offensichtlich nicht der Fall.

Was kann ich tun?
FHEM on Futro S940
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

Prof. Dr. Peter Henning

ZitatDann kommt ein Popup-Fenster, das weggeklickt werden muss.
Aber doch nicht, wenn ich das über die REST-Schnittstelle anstoße.

ZitatWas kann ich tun?
Die Anleitung zu "event-on-change-reading" lesen und verstehen.

LG

pah