Open marian-t-web-de opened 3 weeks ago
Es gibt nur einen Adapter. Der Adapter ioBroker.samsung-community wurde im Jänner 2022 (!) in ioBroker.samsung (zurück) umbenannt. Die Codebasis wurde dabei weder kopiert noch geforked. Siehe GitHub commit history - es ist EIN Adaptercode seit Beginn an.
Die Aussage dass der Adapter ioBroker.Samsung-community nicht mehr weiterentwickelt wird / wurde ist daher streng genommen unrichtig. V0.6.0 IST die aktuelle Weiterentwicklung des Adapters.
Das ändert aber natürlich nichts daran, dass er zusammen mit einem Gerät / einer Geräteserie nicht mehr funktioniert. Leider ist nicht klar ab wann das Problem aufgetreten ist.
Danke jedenfalls mal für as klare Issue incl. Log das bei einer Fehlersuche sicher hilfreich sein wird.
@marian-t-web-de Problem kann derzeit nicht nachgestellt werden. Startup des Adapters an sich funktioniert einwandfrei. Welches Api hast du für diesen Fernseher eingestellt?
Und bitte poste mal das ganz normale ioBroker log mit Level DEBUG - vom start des Adapters angefangen.
Zusätzliche Anmerkung: Du schreibst Titzen HJ-TV's ... Hast du dir den Samsung_tyzen Adapter shon angesehen? Ev. funktioniert der mit dem TV besser.
Häng dich auch ev. an dieses Topic an: https://forum.iobroker.net/topic/74862/samsung-adapter-veraltet/27
Beo Feuersturm läuft der Adapter. Ev. findet sich im Forum ein Unterschied. Wenns Anpassunegn IM code erfordert kann ich dir nicht sagen wann das gefixed werden wird - mir ist derzeit kein Maintaienr des Adapters bekannt. Falls jemand mitarbeiten will ist er / sie herzlich wilkommen. Einfach melden oder PR einstellen.
Danke für den Hinweis auf das Forum, habe schon Betrag verfasst.
Mein TV ist Samsug UE55JS8590TXZG BJ. 2016/Modell 2015 mit Tizen OS, daher habe ich (einige Jahre) die API-Type SamsungHJ erfolgreich benutzt. Der
Hallo, ich konnte endlich die Fehlerursache etwas eingrenzen.
Die Adapter-Sorces v.0.5.0 und v.0.6.0 habe ich unter /iobroker-data kopiert
node-inspect ausgeführt:
debugging in chrome://inspect
Problem ist der Aufbau der Message bei Erstellung von openSocket in SamsungTvConnection.js aus lib/H-and-J-Series-lib/Connection, bei v.0.5.0 korrekt bei v.0.6.0 falsch Erkärung: es wird nach message.data in Form "::[1|2]" gematcht, anderenfalls folgt (wegen !handle == true) ein vorzeitiger return aus dem handle(message) {...} und auch aus dem connect. Nur bei 0.5.0 geht es weiter mit const { handler } = handle und dem 2. return new Promise(resolve => {... drunter. Gem. Log führen beide Versionen folgende Schritte:
Step 1: Saying hello to the server
hello verified
Step 2: Acknowledging
PIN confirmation succeeded. Identity: ...
Handshake: ...
Opening new websocket
Connection established
Nur die v.0.5.0 kommt weiter und meldet noch (u.a.) korrekterweise den 'connected' Status:
Successfully connected to your Samsung HJ TV
nach dem openSocket mit fetch, den ich so nicht debuggen konnte landet man in handle(message) (4). Da die Aufrufe bei der Erstellung von openSocket in beiden Versionen m.E. unverändert sind, muss die Ursache der abweichenden message.data noch ermittelt werden.
Da ist jemand mit mehr Kenntnisse gefragt.
04.09.2024 Ergänzung:
die nicht akzeptierte Daten werden nach Aufruf von
const openSocket = (config, identity, eventEmitter) => {...
innerhalb return und konkret nach
const socket = new WebSocket(
ws://${config.ip}:8000/socket.io/1/websocket/${mask})
(wo mask: "sAPeeUi-IPSVEU7tAvcd") in
socket.on('message', (data) => {
onMessageEmitter(socket, identity, data, eventEmitter)
})
abgerufen. In der version 0.5.0 (mask: "deKmlMSAnNZtahnOAvce") liefert aber der WebSocket - unter gleichem js-controller - korrekte Daten. Das schließt eine veränderte Antwort des TV's aus.
Die 'mask' value vin 0.5.0 führt in 0.6.0 allerdings auch zu Fehlermeldung und stoppen der Verarbeitung.
unknown message received: 7:::1+0
Ist die 0.6.0 mask:value ggfs. die Fehelrursache?
Folgende Meldung in 0.5.0 stört nicht:
unknown message received: 1::/com.samsung.companion
unter 0.6.0 ist bei
Connection established unknown message received: 1:: unknown message received: 2::
das Ende ohne 'Connected'
Ich schrieb am 19.08. (s.o.) folgendes:
...Habe ich noch letzte Woche
v.0.6.0 parallel dazu installiert. Deren Historie beginnt mit 0.5.1, wäre das der gleiche Adapter müsste doch mit 0.5.0 (oder früher) anfangen? ...
@mcm1957 Wo sind die Versionen bis einschließlich 0.5.0 zu finden?
Ich möchte die Dateien der obroker.samsung-community v. 0.5.0 mit obroker.samsung v. 0.6.0 einzeln vergleichen - hier ist es nur ab 0.5.1 möglich?
Und: der iobroker.samsung(soef) ist ja nicht mit iobroker.samsung-community v. 0.5.0 mit SamsungHJ API vergleichbar?
Das Repo ist unverändert ioBroker.samsung. Der Adapter wurde nur zwischenzeitlich auf samsung-community umbenannt und dann wieder retour. Siehe GitHub changelog
Dass die Repo unverändert sei hast du schon vorher geschrieben. Die Frage war wo finde ich die mit SamsungHJ API funktionierende v. 0.5.0 des Adapters?
In enen diesem repository.
Musst dir halt aus der history den passenden Stand / commit suchen wenn es kein Tag gibt.
Tags sind nicht verpflichtend. Ist zwar gutePraxis aber niemand kann einen dev zwingen saubere Tags zu setzen.
Kannst ja mit deinen sourcen am System vergleichen.
Es geht nicht um mich. Sollte der unwahrscheinlicher Fall auftreten, dass sich jemand findet, der den Bug ausbügeln würde dann hilft Ihm die Version auf meinem Raspi wenig. Außerdem ist Github dafür da dass die Versionen immer nachvollziehbar abgelegt werden sein sollen und sich nicht einfach in der Luft auflösen.
Kannst du ggfs. ein Screenshot einfügen wie ich die fehlende Version in Github suchen soll?
Zitat:
Musst dir halt aus der history den passenden Stand / commit suchen wenn es kein Tag gibt.
Wenn die Version vor Jahren nicht getagged wurde kannst du sie nicht über ein Tag bzw. über eine Versionsnummer finden. GitHub hat aber wie du richtigs chreibst alle Änderungen in Form der Commit History gespeichert. Welchen Stand ein User vor Jahren auf npm gepushed hat ist mir nicht bekannt. Wie beschreits geschrieben kannst du nur die Änderungen auf GitHub durchsehen.
Hier siehst du alle Änderungen zurück bis zum Urknall:
Ich habe die noch vorhandenen Versionen nacheinander installiert und getestet. Die ver. 0.5.1 bis 0.5.7 funktionieren mit SamsugHJ API, die 0.5.8 und spätere nicht. Ich versuche noch die Änderungen zw. v.0.5.7 und 0.5.8 einzeln zu Analysieren
Die ausgelieferte v.0.5.7 ist ein Sonderfall, produziert laute Fehler(??): `
host.iobroker | 2024-08-26 10:09:38.075 | info | Do not restart adapter system.adapter.samsung.0 because disabled or deleted -- | -- | -- | -- host.iobroker | 2024-08-26 10:09:38.074 | error | instance system.adapter.samsung.0 terminated with code 3 (NO_ADAPTER_CONFIG_FOUND) samsung.0 | 2024-08-26 10:09:37.399 | warn | Terminated (NO_ADAPTER_CONFIG_FOUND): Without reason samsung.0 | 2024-08-26 10:09:37.398 | debug | Plugin sentry destroyed samsung.0 | 2024-08-26 10:09:37.339 | error | adapter disabled samsung.0 | 2024-08-26 10:09:37.002 | debug | Plugin sentry Initialize Plugin (enabled=true) host.iobroker | 2024-08-26 10:09:11.214 | info | "system.adapter.samsung.0" disabled host.iobroker | 2024-08-26 10:09:04.131 | info | Restart adapter system.adapter.samsung.0 because enabled host.iobroker | 2024-08-26 10:09:04.131 | error | instance system.adapter.samsung.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at addChunk (node:internal/streams/readable:368:12) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Socket.emit (node:domain:489:12) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Socket.emit (node:events:517:28) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Socket.socketOnData (/opt/iobroker/node_modules/ws/lib/websocket.js:1355:35) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Receiver.Writable.write (node:internal/streams/writable:337:10) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at _write (node:internal/streams/writable:333:10) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at writeOrBuffer (node:internal/streams/writable:392:12) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Receiver._write (/opt/iobroker/node_modules/ws/lib/receiver.js:94:10) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Receiver.startLoop (/opt/iobroker/node_modules/ws/lib/receiver.js:167:16) host.iobroker | 2024-08-26 10:09:04.130 | error | Caught by controller[0]: at Receiver.getData (/opt/iobroker/node_modules/ws/lib/receiver.js:496:10) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at Receiver.dataMessage (/opt/iobroker/node_modules/ws/lib/receiver.js:596:14) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at Receiver.emit (node:domain:489:12) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at Receiver.emit (node:events:517:28) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at Receiver.receiverOnMessage (/opt/iobroker/node_modules/ws/lib/websocket.js:1220:20) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at WebSocket.emit (node:domain:489:12) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at WebSocket.emit (node:events:517:28) host.iobroker | 2024-08-26 10:09:04.129 | error | Caught by controller[0]: at WebSocket.`
04.09.2024 Ergänzung in post mit analyse oben, weil dazugehört
Describe the bug Adapter v. 0.5.0 nach einem Update vom js-controller auf Version 6.0.9 nicht mehr. Die Ursache ist, dass dieser nicht mehr weiterentwickelt wird und dass dies durch die Verschiebung in die Repository vom Iobroker heraus nicht erkennbar ist. Das o.g. Issue wurde auf gefixt gesetzt, weit der ioBroker.samsung Adapter v. 0.6.0 unter js-controller v. 6.0.9 nicht mehr crasht.
Allerdings funktioniert dieser mit Tizen HJ-TV's auch nicht - die Anmerkung in Github "...HJ Series tested by me on UE55HU7200." bezieht sich nur auf die (funktionierende) Version 0.5.0 des Ursprungsadapters .
Bei der Bearbeitung des o.g. issues hat sich herausgestellt das die aktuelle Version mangels HJ-TV als Testgerät ungetestet ausgeliefert wurde.
wie in Issue #201 geschildert, funktioniert der
To Reproduce
Expected behavior