Shelly‘s über mqtt update

Begonnen von australien, 06 Juni 2019, 15:38:01

Vorheriges Thema - Nächstes Thema

tomleitner

Danke Dir ... ja das reicht als Anregung ... werde das mit der erweiterten readingList probieren ....

tomleitner

Ich bin nun nicht der große Perl Guru wie man aus meinem Codeschnipsel sehen kann, aber meine Lösung war nun folgende readingList:

shellies/announce:.* { my $id=$EVENT; $id=~s/.*id":"//; $id=~s/".*//; json2nameValue($EVENT, $id . "_" )  }

hier wird über regexp die ID aus dem JSON string gekitzelt. Eleganter wäre es gewesen json2nameValue zweimal aufzurufen, einmal um die 'id' zu bekommen und das zweite Mal um diese 'id' als prefix zu benutzen. Mangels tieferer Kenntnisse konnte ich das aber nicht umsetzen.

So funktionierts aber auch ...


Beta-User

#32
Ausgehend von dem hier müßte eigentlich auch das hier passen (das Umpacken gefällt mir nicht so recht):

shellies/announce:.* { $EVENT =~ m,id...([^"]+), ? json2nameValue($EVENT,$1."_") : json2nameValue($EVENT) }
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

tomleitner

Ja, schaut auch gut aus ... Danke.

Guzzi-Charlie

#34
Hallo,

um die FW aller meiner installierten Shellys automatisch und "gleichzeitig" upzudaten habe ich bisher die Shelly Home APP von Dirk Gausmann verwendet. Nachdem diese bei mir aus unerfindlichen Gründen nicht mehr funktioniert und auch die neue Windows-Version davon ebensowenig funktioniert muß ich bei jedem Shelly die FW wieder einzeln updaten. Das ist ein riesen Aufwand.

Deshalb würde ich gerne die FW meiner (per MQTT2 angebundenen) Shellys über FHEM aktuallisieren. In diesem Zusammenhang bin ich auf diesen Thread gestoßen. Ich habe mir alle Beiträge hier durchgelesen, aber irgendwie verstehe ich die Zusammenhänge nicht.

Meine Annahmen/Fragen:

  • Um zu erkennen ob es für einen Shelly ein neues Update gibt wird hier ja das "new_fw"-Attribut ausgewertet, soweit klar, aber
  • wie soll dieses Attribut gefüllt werden wenn der Shelly keine Internetverbindung zum Shelly Cloud-Server hat?
  • Wie wird die aktuelle FW durch FHEM vom Shelly-Server geholt?
  • Erst wenn man die aktuelle FW vom Shelly Cloud-Server geholt hat, bzw. (falls es so etwas gibt) aus einer Liste die Nr. der neuesten Version heruntergeladen hat kann doch FHEM diese mit der aktuell installierten Version auf dem Shelly vergleichen, das "new_fw"-Attribut setzen und dann automatisch oder manuell diese auf den Shelly laden, oder?

Kann mir das Ganze vielleicht Jemand erklären. Ich stehe absolut auf dem Schlauch.
- RasPi 5: Cuno-V2 -2x KS300,JeeLink -13x EC3000
- Stromzähler: 6x SDM120M,9x XTM100A,38x DRS110M,3x eHz
- LAN: IT-GW 34x RMF-R1(Roll-Mot.),- 1x Loxone MSgo
- WLAN: 89x Shelly,12x Gosund SP111,16x D1-Mini,15x Sonoff Basic,85x 1wire T-Sens.
- DECT: 6x DECT200,11x DECT301,-HmIP: 3x FalmotC12,16x WTH2