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}]
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.
Im Notify das JSON parsen (Google: "fhem json pasen") und dann einfach fhem("setreading DEVICE READINGNAME $xy");
Oder?