FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: buec65 am 05 Juni 2024, 11:10:48

Titel: readings aus notify erzeugen
Beitrag von: buec65 am 05 Juni 2024, 11:10:48
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}]
Titel: Aw: readings aus notify erzeugen
Beitrag von: betateilchen am 05 Juni 2024, 11:29:41
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.
Titel: Aw: readings aus notify erzeugen
Beitrag von: passibe am 06 Juni 2024, 00:46:57
Im Notify das JSON parsen (Google: "fhem json pasen") und dann einfach fhem("setreading DEVICE READINGNAME $xy");
Oder?