readings aus notify erzeugen

Begonnen von buec65, 05 Juni 2024, 11:10:48

Vorheriges Thema - Nächstes Thema

buec65

mir fehlen die Voraussetzungen um ein Modul mit Websocket zu schreiben

aktuell versuche ich daher eine Lösung zu bauen die 72_UBUS_CLIENT.pm nutzt um eine Verbindung zum Gerät aufzubauen

Internals:
   DEF        ws://192.168.10.26:8080
   DeviceName ws:192.168.10.26:8080
   FD         14
   FUUID      666016fe-f33f-e80e-cb80-9fff8b8b1d24bba3
   NAME       SomFyTest
   NR         46
   PARTIAL   
   STATE      opened
   TYPE       UBUS_CLIENT
   WEBSOCKET  1
   eventCount 620
   lastid     0
   method     websocket
   session    00000000000000000000000000000000
   READINGS:
     2024-06-05 10:33:37   state           opened
   header:
     Sec-WebSocket-Protocol ubus-json
   helper:
   rpc:
     SomFyTest:call:0:
       id         SomFyTest:call:0
       jsonrpc    2.0
       method     call
       params:
         00000000000000000000000000000000
         session
         login
         HASH(0x1dbf3f0)
Attributes:

Meldungen werden im EventMonitor angezeigt und über Notify kann ich Teile daraus (shadeId) filtern.

Internals:
   CFGFN     
   DEF        SomFyTest:UNKNOWNCODE.{"shadeId":1,"type":.*,"remoteAddress":.*,"name":.*,"direction":.*,"position":.*,"target":.*,"myPos":.*,"tiltType":.*,"flipCommands":.*,"flipPosition":.*,"flags":.*,"sunSensor":false,"light":.*,"sortOrder":.*} {}
   FUUID      66602611-f33f-e80e-1013-1f65ededecb674c4
   NAME       SomFyTest_notify_1
   NOTIFYDEV  SomFyTest
   NR         48
   NTFY_ORDER 50-SomFyTest_notify_1
   REGEXP     SomFyTest:UNKNOWNCODE.{"shadeId":1,"type":.*,"remoteAddress":.*,"name":.*,"direction":.*,"position":.*,"target":.*,"myPos":.*,"tiltType":.*,"flipCommands":.*,"flipPosition":.*,"flags":.*,"sunSensor":false,"light":.*,"sortOrder":.*}
   STATE      2024-06-05 10:48:51
   TRIGGERTIME 1717577331.21289
   TYPE       notify
   eventCount 2
   READINGS:
     2024-06-05 10:48:03   state           active
     2024-06-05 10:48:51   triggeredByDev  SomFyTest
     2024-06-05 10:48:51   triggeredByEvent UNKNOWNCODE {"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":0,"position":0,"target":0,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}
Attributes:

was muss ich machen um Readings aus dem Event zu erzeugen die Punkte die ich mindestens bräuchte wären

shadeId, position, target


In Firefox gibt es Simple WebSocket Client da kommen folgende Meldungen
Connected

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":0,"position":0,"target":0,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":2,"type":1,"remoteAddress":264742,"name":"Test_002","direction":0,"position":0,"target":0,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":1}]

42[fwStatus,{"available":false,"status":0,"error":0,"cancelled":false,"checkForUpdate":false,"inetAvailable":false,"fwVersion":{"name":"v2.4.1","major":2,"minor":4,"build":1,"suffix":""},"appVersion":{"name":"2.4.1","major":2,"minor":4,"build":1,"suffix":""},"latest":{"name":"","major":0,"minor":0,"build":0,"suffix":""}}]

42[wifiStrength,{"ssid":"FritzBox-WZ","strength":-60,"channel":6}]

42[wifiStrength,{"ssid":"FritzBox-WZ","strength":-60,"channel":6}]

42[shadeCommand,{"shadeId":1,"remoteAddress":264741,"cmd":"Down","source":"internal","rcode":451,"sourceAddress":264741}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":0,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":1,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":2,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":3,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":4,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":5,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":6,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":7,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":8,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":9,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":10,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":1,"position":11,"target":100,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

42[shadeCommand,{"shadeId":1,"remoteAddress":264741,"cmd":"My","source":"internal","rcode":452,"sourceAddress":264741}]

42[shadeState,{"shadeId":1,"type":0,"remoteAddress":264741,"name":"Test_001","direction":0,"position":11,"target":11,"myPos":-1,"tiltType":0,"flipCommands":false,"flipPosition":false,"flags":0,"sunSensor":false,"light":false,"sortOrder":0}]

betateilchen

Zitat von: buec65 am 05 Juni 2024, 11:10:48Meldungen werden im EventMonitor angezeigt und über Notify kann ich Teile daraus (shadeId) filtern.
...
was muss ich machen um Readings aus dem Event zu erzeugen die Punkte die ich mindestens bräuchte wären

Das Attribut userReadings verwenden? Werte aus einem json zu extrahieren, sollte doch kein Problem sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

passibe

Im Notify das JSON parsen (Google: "fhem json pasen") und dann einfach fhem("setreading DEVICE READINGNAME $xy");
Oder?