FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kalleknx am 03 Januar 2023, 14:17:58

Titel: Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: kalleknx am 03 Januar 2023, 14:17:58
Hallo zusammen,

ich bin aktuell dabei ein eigenes Modul zu entwickeln, bei dem ein websocket client benötigt wird. Leider fehlt mir noch etwas Starthilfe, wie ich das idealerweise bewerkstelligen kann. Ich habe mir bereits den Code von 69_Softliqcloud.pm und den IFTTT WebSocket Client https://forum.fhem.de/index.php/topic,41082.0.html (https://forum.fhem.de/index.php/topic,41082.0.html) angeschaut, jedoch passt es noch nicht ganz. Wonach ich suche:

1. Aufbau einer permanenten Websocket Verbindung nach dem Define event. Falls die Verbinung abbricht, sollte sie wieder aufgebaut werden können.
2. Es muss ein http header übergeben werden können. Protocol::WebSocket::Client scheint das nicht zu unterstützen. (Beispiel Aufruf: curl --include --no-buffer --header "Sec-WebSocket-Key: 1234"  --header "Sec-WebSocket-Version: 13" --header "Sec-WebSocket-Protocol: notify" http://ip:port/ --data "msg"
3. Nach dem initialen senden des notify Befehlts kommen dann push Benachrichtigungen dann, welche ich dann gerne verarbeiten würde.

Kann mir jemand ein bestehendes FHEM Modul nennen, welches ich mir anschauen kann, oder alternativ ein passendes Perl Modul?

Lieben Dank vorab.
kalle
Titel: Antw:Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: betateilchen am 03 Januar 2023, 14:37:07
Zitat von: kalleknx am 03 Januar 2023, 14:17:58
Kann mir jemand ein bestehendes FHEM Modul nennen, welches ich mir anschauen kann


FHEM/DevIo.pm
FHEM/HttpUtils.pm
FHEM/TcpServerUtils.pm


Und vielleicht mal einen Blick in die DevelopmentGuidelines zu FHEM werfen.
Titel: Antw:Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: CoolTux am 03 Januar 2023, 14:38:18
Soweit ich weiß hat Andre in 30_HUEBridge.pm auch websocket mit drin.
Titel: Antw:Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: betateilchen am 03 Januar 2023, 14:40:38
Zitat von: CoolTux am 03 Januar 2023, 14:38:18
hat 30_HUEBridge.pm auch websocket mit drin.

01_FHEMWEB.pm wohl auch  ;)

Aber es nützt ja wenig, einfach gedankenlos zu kopieren, wenn man nicht versteht, "warum" und "wie" etwas funktioniert.
Titel: Antw:Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: CoolTux am 03 Januar 2023, 14:43:21
Zitat von: betateilchen am 03 Januar 2023, 14:40:38
01_FHEMWEB.pm wohl auch  ;)

Aber es nützt ja wenig, einfach gedankenlos zu kopieren, wenn man nicht versteht, "warum" und "wie" etwas funktioniert.

Die meisten verstehen es wenn sie den Code analysieren, egal ob theoretisch oder halt durch das Anwenden.
Titel: Antw:Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: xenos1984 am 03 Januar 2023, 18:29:07
FHEM/72_UBUS_CALL.pm

Das implementiert auch einen WebSocket-Client mittels DevIo.
Titel: Aw: Starthilfe Modulentwicklung: Websocket Client benötigt
Beitrag von: kalleknx am 23 Mai 2023, 21:43:27
Hi zusammen,

Trotz einer ,,schöpferischen" Pause möchte ich mich diesem Thema gerne wieder widmen. Ziel ist ein Modul zur Unterstützung von owntone (https://owntone.github.io/owntone-server/) (ehemals forked-daapd).

Mithilfe von DevIO klappt die WebSocket Verbindung (basierend auf diesem Beispiel (https://forum.fhem.de/index.php?topic=109910.msg1065900#msg1065900)).

Um die Push Nachrichten von owntone zu aktivieren, muss folgender Befehl geschickt werden:
{ \"notify\": [ \"player\" ] } —> siehe Doku (https://owntone.github.io/owntone-server/json-api/#push-notifications)

Mittels
DevIo_SimpleWrite($hash, "{ \"notify\": [ \"player\" ] }", 2); klappt das leider nicht. (Der Befehl wird seitens owntone nicht erkannt)

Was übersehe ich?