mrbungle64 / ioBroker.switchbot-ble

Control your SwitchBot "Bot" and monitor SwitchBot "Meter", "Contact" and "Motion" via Bluetooth (BLE)
MIT License
5 stars 1 forks source link

Bug: Curtain Upgrade auf Firmware Version 3.9 #121

Closed patrickbs96 closed 9 months ago

patrickbs96 commented 2 years ago

Is there an existing issue for this?

The problem

Hallo Sascha,

ich lege das mal als Issue an, da das alte Issue geschlossen ist und darauf nicht geantwortet werden kann.

Ich bin bei der Curtain noch bei Version 3.1, ein Update wird mir aktuell aber auch nicht angeboten. Vielleicht wird das inkrementell ausgerollt. Falls ich was testen soll, sag Bescheid 😉


@Pr0xyChainZ @patrickbs96

Hat einer von Euch beim Curtain schon die Firmware-Version 3.9 installiert?

Mit dieser Firmware scheint es Probleme zu geben.

Falls Ihr noch eine niedrigere Version installiert habt würde ich erst mal von einem Update abraten. Ansonsten würde ich mich über Feedback freuen, wie es mit der Firmware-Version 3.9 funktioniert 😉

Originally posted by @mrbungle64 in https://github.com/mrbungle64/ioBroker.switchbot-ble/issues/65#issuecomment-1047794827

Version of the JS controller

4.0.9

Version of Node.js

16.14.0

Operating system

Linux

Anything in the logs that might be useful?

No response

Additional information

No response

mrbungle64 commented 2 years ago

@patrickbs96

Vielen Dank! Sorry, hatte das nicht mehr auf dem Schirm, dass ich den anderen Issue gelockt hatte 😉

mrbungle64 commented 2 years ago

Link zum ursprünglichen Issue Link to original issue

Pr0xyChainZ commented 2 years ago

@mrbungle64

@Pr0xyChainZ @patrickbs96

Hat einer von Euch beim Curtain schon die Firmware-Version 3.9 installiert?

Mit dieser Firmware scheint es Probleme zu geben.

Falls Ihr noch eine niedrigere Version installiert habt würde ich erst mal von einem Update abraten. Ansonsten würde ich mich über Feedback freuen, wie es mit der Firmware-Version 3.9 funktioniert 😉

Originally posted by @mrbungle64 in #65 (comment)

Ich habe momentan zwei switchbot curtains mit der Firmware 3.3 im Einsatz. Ich kann auch nach Anpassung wie von Patrick beschrieben (siehe Screenshot unterhalb) keinen der Curtain über den IObroker ansteuern. Es bleibt nur die Steuerung des Switchbots (wie in https://github.com/mrbungle64/ioBroker.switchbot-ble/issues/65 beschrieben).

grafik

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Danke für das Feedback 👍🏻

Hast Du die Version 0.4.0 vom Adapter installiert oder noch eine ältere?

Pr0xyChainZ commented 2 years ago

@mrbungle64

Ich hatte eben noch die aktuelle Version 0.4.0 installiert. Es hat sich leider nichts geändert.

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Welche Funktionen testest Du? Nur "runToPos" oder auch "open", "close" oder "pause"? Kannst du noch mal einen aktuellen Auszug aus dem Log posten?

patrickbs96 commented 2 years ago

@mrbungle64 @Pr0xyChainZ Könnte da nicht eventuell schon das Problem liegen? Bei @Pr0xyChainZ ist die Version 3.3 installiert und bei mir die Version 3.1. Das scheint ja aktuell der einzige Unterschied zwischen unseren beiden Systemen zu sein...

mrbungle64 commented 2 years ago

@mrbungle64 @Pr0xyChainZ Könnte da nicht eventuell schon das Problem liegen? Bei @Pr0xyChainZ ist die Version 3.3 installiert und bei mir die Version 3.1. Das scheint ja aktuell der einzige Unterschied zwischen unseren beiden Systemen zu sein...

@patrickbs96 Das kann natürlich sein.

@Pr0xyChainZ Hattest Du diese Firmware-Version schon als wir noch in dem anderen Issue unterwegs waren?

patrickbs96 commented 2 years ago

@mrbungle64 Ich hatte gerade auf die aktuelle Version 0.4.0 geupdated und jetzt wird der Adapter nicht mehr grün. Ich habe ihn schon neuinstalliert und alle Befehle aus der ReadMe erneut ausgeführt ohne Erfolg... Hast du eine Idee?

Bei mir wurde gerade die neue Firmware 3.9 angeboten, ist jetzt auch soweit installiert und werde ich testen sobald der Adapter wieder läuft...

2022-03-01 10:38:27.709 - info: switchbot-ble.0 (3529) starting. Version 0.4.0 (non-npm: mrbungle64/ioBroker.switchbot-ble#e63437506afc224b40d7b2e13a04273b65305f19) in /opt/iobroker/node_modules/iobroker.switchbot-ble, node: v16.14.0, js-controller: 4.0.15
--
2022-03-01 10:41:15.652 - info: switchbot-ble.0 (3529) Got terminate signal TERMINATE_YOURSELF
2022-03-01 10:41:20.699 - debug: switchbot-ble.0 (3630) Redis Objects: Use Redis connection: 192.168.178.124:9001
2022-03-01 10:41:21.017 - debug: switchbot-ble.0 (3630) Objects client ready ... initialize now
2022-03-01 10:41:21.020 - debug: switchbot-ble.0 (3630) Objects create System PubSub Client
2022-03-01 10:41:21.021 - debug: switchbot-ble.0 (3630) Objects create User PubSub Client
2022-03-01 10:41:21.193 - debug: switchbot-ble.0 (3630) Objects client initialize lua scripts
2022-03-01 10:41:21.203 - debug: switchbot-ble.0 (3630) Objects connected to redis: 192.168.178.124:9001
2022-03-01 10:41:21.207 - silly: switchbot-ble.0 (3630) redis psubscribe cfg.o.system.user.*
2022-03-01 10:41:21.272 - silly: switchbot-ble.0 (3630) redis psubscribe cfg.o.enum.*
2022-03-01 10:41:21.279 - silly: switchbot-ble.0 (3630) objectDB connected
2022-03-01 10:41:21.283 - debug: switchbot-ble.0 (3630) Redis States: Use Redis connection: 192.168.178.124:9000
2022-03-01 10:41:21.343 - debug: switchbot-ble.0 (3630) States create System PubSub Client
2022-03-01 10:41:21.345 - debug: switchbot-ble.0 (3630) States create User PubSub Client
2022-03-01 10:41:21.444 - debug: switchbot-ble.0 (3630) States connected to redis: 192.168.178.124:9000
2022-03-01 10:41:21.446 - silly: switchbot-ble.0 (3630) statesDB connected
2022-03-01 10:41:22.575 - info: switchbot-ble.0 (3630) starting. Version 0.4.0 (non-npm: mrbungle64/ioBroker.switchbot-ble#e63437506afc224b40d7b2e13a04273b65305f19) in /opt/iobroker/node_modules/iobroker.switchbot-ble, node: v16.14.0, js-controller: 4.0.15
2022-03-01 10:41:22.610 - debug: switchbot-ble.0 (3630) Init interval: 60000
2022-03-01 10:41:22.611 - debug: switchbot-ble.0 (3630) Init scanDevicesWait: 5000
2022-03-01 10:41:22.612 - debug: switchbot-ble.0 (3630) Init pressDevicesWait: 10000
2022-03-01 10:41:22.612 - debug: switchbot-ble.0 (3630) Init maxRetriesDeviceAction: 25
2022-03-01 10:41:22.631 - silly: switchbot-ble.0 (3630) States system redis pmessage system.adapter.switchbot-ble.0.logLevel/system.adapter.switchbot-ble.0.logLevel:{"val":"silly","ack":true,"ts":1646127682615,"q":0,"from":"system.adapter.switchbot-ble.0","lc":1646127682615}
2022-03-01 10:41:22.670 - silly: switchbot-ble.0 (3630) States user redis pmessage switchbot-ble.0.*/switchbot-ble.0.info.connection:{"val":false,"ack":true,"ts":1646127682661,"q":0,"from":"system.adapter.switchbot-ble.0","user":"system.user.admin","lc":1646127152210}
2022-03-01 10:41:22.673 - debug: switchbot-ble.0 (3630) [onStateChange] state switchbot-ble.0.info.connection changed: false (ack = true)
2022-03-01 10:42:22.645 - debug: switchbot-ble.0 (3630) [setIsBusy] busy: true
2022-03-01 10:42:27.651 - debug: switchbot-ble.0 (3630) [setIsBusy] busy: false
2022-03-01 10:43:22.615 - debug: switchbot-ble.0 (3630) [setIsBusy] busy: true
2022-03-01 10:43:27.617 - debug: switchbot-ble.0 (3630) [setIsBusy] busy: false
2022-03-01 10:43:42.848 - silly: switchbot-ble.0 (3630) States system redis pmessage system.adapter.switchbot-ble.0.sigKill/system.adapter.switchbot-ble.0.sigKill:{"val":-1,"ack":false,"ts":1646127822706,"q":0,"from":"system.host.raspberrypi2","lc":1646127822706}
mrbungle64 commented 2 years ago

@patrickbs96

Welche Version vom js-controller hast Du installiert?

patrickbs96 commented 2 years ago

@mrbungle64

js-controller: 4.0.15 node-js: 16.14.0 NPM: 8.3.1

mrbungle64 commented 2 years ago

@patrickbs96

Wenn Du die vorherige Version installierst - geht es dann wieder?

patrickbs96 commented 2 years ago

@mrbungle64 Ne hatte auch nicht funktioniert, hatte ich auch versucht gehabt.. Komischerweise funktioniert es jetzt nach einem weiteren Neustart des PIs wieder 🤔

Er findet jetzt aber leider nur noch den Bot, die Curtains findet er nicht mehr... Das ist dann wohl der Bug mit Firmware 3.9...

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Der Maintainer vom node-switchbot Modul vermutet, dass die Version 3.3 ebenfalls betroffen ist.

mrbungle64 commented 2 years ago

@mrbungle64 Ne hatte auch nicht funktioniert, hatte ich auch versucht gehabt.. Komischerweise funktioniert es jetzt nach einem weiteren Neustart des PIs wieder thinking

Sehr gut 😉

Er findet jetzt aber leider nur noch den Bot, die Curtains findet er nicht mehr... Das ist dann wohl der Bug mit Firmware 3.9...

Weniger gut ...

patrickbs96 commented 2 years ago

Dadurch das node-switchbot beim Advertising die nicht findet, könnte es eventuell sein, dass die herausgefiltert werden? Da die Geräte ja so zu finden sind könnte es sein, dass die in der switchbot-advertising.js Datei herausgefiltert werden? Kann man das irgendwie loggen, welche Daten zum parsen hereinkommen und welche tatsächlich als Gerät erkannt wurden?

Pr0xyChainZ commented 2 years ago

@mrbungle64

@Pr0xyChainZ

Welche Funktionen testest Du? Nur "runToPos" oder auch "open", "close" oder "pause"? Kannst du noch mal einen aktuellen Auszug aus dem Log posten?

Ich hatte runToPos und open versucht.

Pr0xyChainZ commented 2 years ago

@mrbungle64 meine Konfiguration ist momentan wie folgt:

js-controller: 4.0.15 node-js: v12.22.10 NPM: 8.5.2

Pr0xyChainZ commented 2 years ago

@mrbungle64 Mir wurde heute auch das Firmware-Update auf 3.9 angeboten. Dann erklärt sich wohl auch warum es bei mir von Anfang an mit der Firmware 3.3 nicht funktioniert hat mit den Curtains. Ich kann leider nicht sagen ob ich die Curtains schon auf 3.3 geupdatet hatte oder die so ausgeliefert wurden.

@patrickbs96 Musst du auch ca. alle 2-3 Wochen die Curtains zurücksetzen weil sie sich nicht mehr mit der Smartphone App per Bluetooth gekoppeln lassen? Ich bin mit den Curtains aufgrund der ganzen Nachteile mehr als Unzufrieden.

patrickbs96 commented 2 years ago

@Pr0xyChainZ Also ich meine ich musste damals ein Update machen, kann mich aber auch täuschen. Ne zurücksetzen muss ich sie zwar nicht aber alle paar Wochen muss ich sie neu kalibrieren, da sie sich nach einer Weile beim Schließen überlappen wollen und irgendwann nicht mehr komplett aufgehen... Manchmal werde die mir auch nicht direkt in der App angezeigt aber da hat bisher immer das Neustarten der App geholfen. Falls es Mal passiert dann 1-3 Mal die App neustarten.

mrbungle64 commented 2 years ago

@patrickbs96 @Pr0xyChainZ

In den allgemeinen Einstellungen der App gibt es den Punkt "Firmware Recovery". Vielleicht könnt Ihr dort zu einer älteren Version zurück.

patrickbs96 commented 2 years ago

@mrbungle64 Leider wird mir da nichts angezeigt...

Hattest du meine andere Nachricht gesehen gehabt?

Dadurch das node-switchbot beim Advertising die nicht findet, könnte es eventuell sein, dass die herausgefiltert werden? Da die Geräte ja so zu finden sind könnte es sein, dass die in der switchbot-advertising.js Datei herausgefiltert werden? Kann man das irgendwie loggen, welche Daten zum parsen hereinkommen und welche tatsächlich als Gerät erkannt wurden?

mrbungle64 commented 2 years ago

@patrickbs96

@mrbungle64 Leider wird mir da nichts angezeigt...

Hattest du meine andere Nachricht gesehen gehabt?

Dadurch das node-switchbot beim Advertising die nicht findet, könnte es eventuell sein, dass die herausgefiltert werden? Da die Geräte ja so zu finden sind könnte es sein, dass die in der switchbot-advertising.js Datei herausgefiltert werden? Kann man das irgendwie loggen, welche Daten zum parsen hereinkommen und welche tatsächlich als Gerät erkannt wurden?

Ja, hatte ich gesehen - wollte Dir auch noch antworten. Hatte aber noch keine Zeit mir dazu ausreichend Gedanken zu machen 😉

Pr0xyChainZ commented 2 years ago

@patrickbs96

Ich hatte es bisher nicht hinbekommen und daher der Reset. Werde deinen Tip aber nochmal ausprobieren wenn es soweit ist. ;)

@mrbungle64

@patrickbs96 @Pr0xyChainZ

In den allgemeinen Einstellungen der App gibt es den Punkt "Firmware Recovery". Vielleicht könnt Ihr dort zu einer älteren Version zurück.

Leider gab es da keine Auswahl oder die Option eine vorherige Firmware zu flashen. Schade das es kein Tool zum flashen alter Firmware gibt. Ich merke da bisher keinen sinnvollen Unterschied in der neuen Version (3.9).

mrbungle64 commented 2 years ago

@patrickbs96

Dadurch das node-switchbot beim Advertising die nicht findet, könnte es eventuell sein, dass die herausgefiltert werden? Da die Geräte ja so zu finden sind könnte es sein, dass die in der switchbot-advertising.js Datei herausgefiltert werden? Kann man das irgendwie loggen, welche Daten zum parsen hereinkommen und welche tatsächlich als Gerät erkannt wurden?

Du könntest mal schauen was mit der Beta von node-switchbot kommt https://github.com/OpenWonderLabs/node-switchbot/tree/beta Und dort ggf. was zum loggen in den Code einbauen.

Ich habe das Advertising mit folgendem Code getestet:

// Pfad muss ggf. noch angepasst werden
const Switchbot = require('../lib/switchbot.js');

const switchbot = new Switchbot();

(async () => {
    await switchbot.startScan();
    switchbot.onadvertisement = (ad) => {
        console.log(JSON.stringify(ad, null, '  '));
    };
    await switchbot.wait(10000);
    switchbot.stopScan();
    process.exit();
})();
patrickbs96 commented 2 years ago

@mrbungle64 Ich habe den Fehler gefunden 🎉 Bei der Curtain hat sich der Bufferinhalt vergrößert, vermutlich wird eine weitere Information übermittelt 🤦🏻‍♂️ Ich hatte in meinem node-switchbot fork ein Logging eingebaut, dass beim parsen Information zurückliefert. So konnte ich mich mühselig daran entlang hangeln bis der Fehler kam...

Wie sollen wir jetzt weiter vorgehen? Soll ich einen Pull-Request erstellen inklusive Logging oder den Teil wieder entfernen? Plus wie ist das mit der Abwärtskompatibilität, Curtains mit einer Firmware < 3.9 müssen ja auch noch funktionieren, soll ich dann auf 5 oder 6 abfragen?

mrbungle64 commented 2 years ago

@patrickbs96

@mrbungle64 Ich habe den Fehler gefunden

Sehr gut 👍🏻

Bei der Curtain hat sich der Bufferinhalt vergrößert, vermutlich wird eine weitere Information übermittelt 🤦🏻‍♂️ Ich hatte in meinem node-switchbot fork ein Logging eingebaut, dass beim parsen Information zurückliefert. So konnte ich mich mühselig daran entlang hangeln bis der Fehler kam...

Wie sollen wir jetzt weiter vorgehen? Soll ich einen Pull-Request erstellen inklusive Logging oder den Teil wieder entfernen? Plus wie ist das mit der Abwärtskompatibilität, Curtains mit einer Firmware < 3.9 müssen ja auch noch funktionieren, soll ich dann auf 5 oder 6 abfragen?

Ja, das hört sich vernünftig an 👍🏻

patrickbs96 commented 2 years ago

@mrbungle64 Pull Request eingereicht, jetzt heißt es abwarten 😄

mrbungle64 commented 2 years ago

@patrickbs96

@mrbungle64 Pull Request eingereicht, jetzt heißt es abwarten smile

Cool 👍🏻

In der "switchbot-advertising.js" ist aber noch ein kleiner Bug 😉

...
} else if (model === 'e') { // WoHumi
      sd = this._parseServiceDataForWoHumi(buf), onlog;
}
...
patrickbs96 commented 2 years ago

@mrbungle64 Verdammt, danke dir. Verrückt, dass es trotzdem ausführbar war 😄

mrbungle64 commented 2 years ago

@patrickbs96 @Pr0xyChainZ

Probiert bitte mal 😃 https://github.com/mrbungle64/ioBroker.switchbot-ble/tree/beta/node-switchbot-1.1.3-beta.9

patrickbs96 commented 2 years ago

@mrbungle64 Bei mir funktioniert es 👍🏻

@Pr0xyChainZ Entfern vor der Installation einmal die Datenpunkte der Curtains, dann kann man besser sehen ob die auch richtig erkannt wurden 😉

mrbungle64 commented 2 years ago

@mrbungle64 Bei mir funktioniert es 👍🏻

Hast du gut gemacht 😉 😄

@Pr0xyChainZ Entfern vor der Installation einmal die Datenpunkte der Curtains, dann kann man besser sehen ob die auch richtig erkannt wurden wink

mrbungle64 commented 2 years ago

Bei mir läuft soweit auch noch alles 👍🏻

Wenn @Pr0xyChainZ nun noch bestätigt, dass sein Curtain nun auch funktioniert kann ich die 0.4.1 veröffentlichen. Bin gespannt, ob das auch schon bei der Firmware Version 3.3 das Problem war 😉

mrbungle64 commented 2 years ago

@patrickbs96 @Pr0xyChainZ

Ich habe jetzt doch schon die 0.4.1 released, da von node-switchbot die 1.2.0 schon verfügbar ist 😉

Pr0xyChainZ commented 2 years ago

@mrbungle64 @patrickbs96

Ich verzweifel gerade wieder....

Ich habe den kompletten Objektbaum gelöscht. Dann den Adapter gelöscht und den Pi rebootet. Danach das Update installiert (https://github.com/mrbungle64/ioBroker.switchbot-ble/tree/beta/node-switchbot-1.1.3-beta.9). Es wird mir als Version 0.4.0 angezeigt (ist das korrekt?). Danach ließ sich auch wie zuvor schon die Curtains nicht öffnen auch der Switchbot nicht. Nach einem erneuten Neustart des Pi kann ich den Switchbot ansteuern jedoch passiert bei den Curtains weiterhin nichts...

grafik

grafik

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Installier bitte mal die 0.4.1 und poste dann mal den Abschnitt aus dem Log während du "open" und "close" ausführst.

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Hattest du jetzt eigentlich schon auf die Firmware Version 3.9 upgedated?

patrickbs96 commented 2 years ago

@mrbungle64 Ich meine @Pr0xyChainZ hatte auf 3.9 geupdated.

Das Ding ist, dass meine Anpassung das eigentliche Problem von ihm nicht löst. Denn die curtains wurden bei ihm angelegt, das war bspw. bei mir nicht der Fall mit Version 3.9 ... Ich schaue morgen Mal ob ich etwas zu der letzten Fehlermeldung No service was found. im Netz finde. Ich denke das ist eine allgemeine Bluetooth Fehlermeldung.

Pr0xyChainZ commented 2 years ago

@mrbungle64

Auf allen beiden Switchbot Curtains wurde vorher die Firmware 3.9 installiert. Allen Versuchen zum Trotz, zeigt mir iobroker nach der Installation des Adapters die Version 0.4.0 an. Ich weiß nicht warum er sich nicht die 0.4.1 zieht.

mrbungle64 commented 2 years ago

@mrbungle64

Auf allen beiden Switchbot Curtains wurde vorher die Firmware 3.9 installiert. Allen Versuchen zum Trotz, zeigt mir iobroker nach der Installation des Adapters die Version 0.4.0 an. Ich weiß nicht warum er sich nicht die 0.4.1 zieht.

@Pr0xyChainZ Sorry, das war mein Fehler mit der Version 🤦🏻‍♂️ Jetzt sollte es aber passen 😉

Pr0xyChainZ commented 2 years ago

@mrbungle64 @patrickbs96

Wie Patrick es schon vorausgesagt hat klappt es leider weiterhin nicht. Er findet keinen Service siehe Screenshot:

grafik

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Läuft da noch was anderes auf dem selben System was Bluetooth Geräte ansteuert oder ausließt? (auch auf die Gefahr hin, dass wir da in dem anderen Issue vielleicht schon mal drüber geschrieben haben)

Pr0xyChainZ commented 2 years ago

@mrbungle64 Ich verwende den internen Bluetooth Adapter vom Raspberry Pi 4. Installiert ist Buster. Über den BLE-Adapter hole ich mir noch Temperatur- und Feuchtigkeitsdaten von mehreren Raumthermometern.

mrbungle64 commented 2 years ago

@Pr0xyChainZ

@mrbungle64 Ich verwende den internen Bluetooth Adapter vom Raspberry Pi 4. Installiert ist Buster. Über den BLE-Adapter hole ich mir noch Temperatur- und Feuchtigkeitsdaten von mehreren Raumthermometern.

Kannst du den BLE Adapter zum Testen mal kurz stoppen (falls noch nicht geschehen)?

Pr0xyChainZ commented 2 years ago

@mrbungle64

Krass das hat funktionert. :) Aber muss ich mich jetzt für eins von beiden entscheiden? Warum funktioniert es mit dem Switchbot wenn der BLE in Betrieb ist aber mit den Curtains nicht?

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Krass das hat funktionert. :)

Das ist auf jeden Fall schon mal gut zu wissen 😉

Aber muss ich mich jetzt für eins von beiden entscheiden?

Das hoffe ich nicht ...

Warum funktioniert es mit dem Switchbot wenn der BLE in Betrieb ist aber mit den Curtains nicht?

Gute Frage - das wäre jetzt nötig mal herauszufinden was da genau los ist. Da muss ich mich "Schlau machen"

@patrickbs96 Hast du eine Idee?

mrbungle64 commented 2 years ago

@Pr0xyChainZ

Du könntest das "RSSI Update-Intervall" im BLE-Adapter mal auf einen hohen Wert stellen (falls Du das nicht explizit nutzt) und dann schauen ob es besser wird mit dem Curtain.

Pr0xyChainZ commented 2 years ago

@mrbungle64

Aber super dass es jetzt ersteinmal grundsätzlich funktioniert (y)

Pr0xyChainZ commented 2 years ago

@mrbungle64

Alles klar werde es mal direkt testen!