[74_CometBlueBTLE.pm] Neues Modul für Eurotronic Bluetooth Heizungsthermostate

Begonnen von CoolTux, 27 Februar 2018, 12:24:43

Vorheriges Thema - Nächstes Thema

CoolTux

Aus diesem Thread heraus entstand ein neues Modul welches Ihr zur Zeit nur über mein Gibthub zum testen bekommt


define NAME CometBlueBTLE <BT-MAC>


Die aktuellste Entwicklerversion bekommt Ihr hier

Das Modul sollte mit folgenden Geräten kompatibel sein.
## Name                   Preis         Vertrieb über
## -----------------------------------------------
## Xavax Hama                40 Euro     Media Markt
## Sygonix HT100 BT     20 Euro     Conrad
## Comet Blue                  20 Euro     Real / Bauhaus
## SilverCrest                   15 Euro     Lidl
## THERMy blue                                 Aldi



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

p.g.

Hi,

ich hab mir heute mal dein Modul runtergeladen und installiert. Jedoch habe ich das Problem, dass keine Daten gesendet oder empfagen werden.
Beim abschicken eines Temperaturwertes bleibt er hängen. (CometBlue)

Loglevel 4 "drittes if"
Loglevel 5 "No Route to Host"

ich habe das Modul als Device definiert und per shell kann ich das Thermostat ansteuern

kannst du mir vielleicht helfen`?

Wollte grade mal das Modul reloaden, dann kam folgende Rückmeldung:
Not enough arguments for main::InternalTimer at ./FHEM/74_CometBlueBTLE.pm line 331, near "$hash )"

Gruß
Philip

CoolTux

Zitat von: p.g. am 20 April 2018, 20:37:58
Hi,

ich hab mir heute mal dein Modul runtergeladen und installiert. Jedoch habe ich das Problem, dass keine Daten gesendet oder empfagen werden.
Beim abschicken eines Temperaturwertes bleibt er hängen. (CometBlue)

Loglevel 4 "drittes if"
Loglevel 5 "No Route to Host"

ich habe das Modul als Device definiert und per shell kann ich das Thermostat ansteuern

kannst du mir vielleicht helfen`?

Wollte grade mal das Modul reloaden, dann kam folgende Rückmeldung:
Not enough arguments for main::InternalTimer at ./FHEM/74_CometBlueBTLE.pm line 331, near "$hash )"

Gruß
Philip

Du wirst wohl erstmal ein Update machen müssen. Dein FHEM ist ja Uralt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

p.g.

Noch eine doofe Frage, woran siehst do das? :o ;D


Update hat geholfen :)

CoolTux

Not enough arguments for main::InternalTimer at ./FHEM/74_CometBlueBTLE.pm line 331, near "$hash )"

Da gab es vor über einem Jahr mal eine Änderung  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich werde heute Abend oder Morgen im laufe des Vormittags eine neue Version ins Git laden. Hier wird dann auch das lesen der tempListen aktiv sein. Leider habe ich bei mir selber noch ein Problem so das die Zeiten so gar nicht passen. Da bin ich noch auf der Suche. Aber es tut ja nicht weh. Bitte schaut dann mal ob Ihr vernünftige Werte bekommt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ludwich

Hallo CoolTux
Ich habe mir die 0.1.45 gezogen, er hat mir aber keine Temp-Listen angezeigt.
Jetzt habe ich nochmal geschaut und er hat tatsächlich etwas gelesen.
Das GetTemplist klappt aber nicht, diese Werte hat er vor zwei Tagen geholt.
Der Inhalt der Listen ist noch "abenteuerlich" 42:300 Uhr....

Ich helfe gern weiter - BTLE wird sicher mit BT5.0 neben den andern Standards mehr Verbreitung finden

Sygonix
0_tempListSat 42:300 42:300 09:10 11:00 18:10 22:00 42:300 42:300 2018-05-18 20:19:50
1_tempListSun 42:300 42:300 37:20 37:20 00:00 37:20 37:20 37:20 2018-05-18 20:19:51
2_tempListMon 06:10 09:40 17:300 21:50 42:300 42:300 06:10 09:40 2018-05-18 20:19:51
3_tempListTue 17:300 21:50 42:300 42:300 42:300 42:300 06:10 09:40 2018-05-18 20:19:52
4_tempListWed 17:300 21:50 42:300 42:300 42:300 06:10 09:40 17:300 2018-05-18 20:19:55
5_tempListThu 21:50 42:300 42:300 42:300 42:300 06:10 09:40 21:50 2018-05-18 20:19:56
6_tempListFri 42:300 42:300 09:10 11:00 18:10 22:00 42:300 42:300 2018-05-18 20:19:56

Thermy Blue
Überwiegen 00:00 und Mist

Danke für dein Engagement

ludwich

CoolTux

Das liegt, zu mindest bei mir, tatsächlich am Thermostaten. Stelle mal bitte Deine Listen über die App einmal fest ein. Denke daran ein zu stellen das Du 4 Zeiten pro Tag haben willst. Wenn du nur 2 stellst mach die anderen von den Tag auf 00:00

Wenn du fertig bist lass fhem auslesen und zu mindest bei mir stimmt es dann bis nach ein zwei Tagen, dann ist es wieder kaputt und in der App stehen komische Zeiten drin.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

deify

Hi, erstmal danke für das Modul!
Die Ansteuerung der Thermostate klappt soweit,, Allerdingsch  bei mir ein Problem mit den readings.

Das Parsen des zurückgelieferten Strings wirft einen Fehler, wodurch alle readings ungeschrieben bleiben.

2018.05.22 11:23:36 4 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: gatttool return string: ThermostatWZ|12:34:56:78|ok|read|0x18|HASH(0x1b43fe0)
2018.05.22 11:23:36 3 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: JSON error while request: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "HASH(0x1b43fe0)") at /usr/share/fhem/FHEM/74_CometBlueBTLE.pm line 636

Bei dem Thermostat handelt es sich um ein ThermyBlue mit sw version 0.1.45.
Ich hoffe der Ausschnitt langt um zur Analyse des Fehlers.

Grüße

CoolTux

Zitat von: deify am 22 Mai 2018, 11:36:01
Hi, erstmal danke für das Modul!
Die Ansteuerung der Thermostate klappt soweit,, Allerdingsch  bei mir ein Problem mit den readings.

Das Parsen des zurückgelieferten Strings wirft einen Fehler, wodurch alle readings ungeschrieben bleiben.

2018.05.22 11:23:36 4 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: gatttool return string: ThermostatWZ|12:34:56:78|ok|read|0x18|HASH(0x1b43fe0)
2018.05.22 11:23:36 3 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: JSON error while request: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "HASH(0x1b43fe0)") at /usr/share/fhem/FHEM/74_CometBlueBTLE.pm line 636

Bei dem Thermostat handelt es sich um ein ThermyBlue mit sw version 0.1.45.
Ich hoffe der Ausschnitt langt um zur Analyse des Fehlers.

Grüße

Hallo. Leider reicht das nicht.
Bitte einmal verbose 5 stellen und dann noch mal von Hand abrufen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

deify

Okay sorry, verbose war eigentlich auf fünf, ich dachte bloß die Zuordnung der Fehlermeldung zur Codezeile genügt eventuell. Hier nochmal eine vollständige Aktualisierung der Temperaturen mit verbose 5

2018.05.23 07:39:46 5 : Cmd: >get ThermostatWZ temperatures<
2018.05.23 07:39:46 4 : CometBlueBTLE (ThermostatWZ) - Run CreateParamGatttool with mod: read
2018.05.23 07:39:46 5 : CometBlueBTLE (ThermostatWZ) - Noch in Queue nach pop: 0
2018.05.23 07:39:46 3 : CometBlueBTLE (ThermostatWZ) - CreateParamGatttool erstes if
2018.05.23 07:39:46 4 : BlockingCall (CometBlueBTLE_ExecGatttool_Run): created child (13607), uses telnetForBlockingFn_1526980458 to connect back
2018.05.23 07:39:46 5 : Starting notify loop for ThermostatWZ, 1 event(s), first is pairing thermostat with pin: 00000000
2018.05.23 07:39:46 5 : createNotifyHash
2018-05-23 07:39:46 CometBlueBTLE ThermostatWZ pairing thermostat with pin: 00000000
2018.05.23 07:39:46 5 : End notify loop for ThermostatWZ
2018.05.23 07:39:46 4 : CometBlueBTLE (ThermostatWZ) - Read CometBlueBTLE_ExecGatttool_Run ThermostatWZ|6F:78:7E:36:1B:37|read|0x18
2018.05.23 07:39:46 4 : WEB: /fhem?detail=ThermostatWZ&dev.getThermostatWZ=ThermostatWZ&cmd.getThermostatWZ=get&arg.getThermostatWZ=temperatures&val.getThermostatWZ=&XHR=1&addLinks=1&fwcsrf=csrf_338077770737684&fw_id=1866 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip /
2018.05.23 07:39:46 4 : Connection accepted from telnetForBlockingFn_1526980458_127.0.0.1_58158
2018.05.23 07:39:46 5 : Cmd: >{BlockingRegisterTelnet($cl,1771)}<
2018.05.23 07:39:49 5 : Cmd: >{BlockingStart('1771')}<
2018.05.23 07:39:49 5 : Cmd: >{CometBlueBTLE_ExecGatttool_Done('ThermostatWZ|6F:78:7E:36:1B:37|ok|write|0x48|HASH(0x1b43fe0)')}<
2018.05.23 07:39:49 4 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: gatttool return string: ThermostatWZ|6F:78:7E:36:1B:37|ok|write|0x48|HASH(0x1b43fe0)
2018.05.23 07:39:49 4 : CometBlueBTLE (ThermostatWZ) - Run CreateParamGatttool with mod: read
2018.05.23 07:39:49 5 : CometBlueBTLE (ThermostatWZ) - Noch in Queue nach pop: 0
2018.05.23 07:39:49 3 : CometBlueBTLE (ThermostatWZ) - CreateParamGatttool zweites if
2018.05.23 07:39:49 4 : BlockingCall (CometBlueBTLE_ExecGatttool_Run): created child (13623), uses telnetForBlockingFn_1526980458 to connect back
2018.05.23 07:39:49 5 : Starting notify loop for ThermostatWZ, 1 event(s), first is read sensor data
2018-05-23 07:39:49 CometBlueBTLE ThermostatWZ read sensor data
2018.05.23 07:39:49 5 : End notify loop for ThermostatWZ
2018.05.23 07:39:49 4 : CometBlueBTLE (ThermostatWZ) - Read CometBlueBTLE_ExecGatttool_Run ThermostatWZ|6F:78:7E:36:1B:37|read|0x18
2018.05.23 07:39:49 4 : Connection accepted from telnetForBlockingFn_1526980458_127.0.0.1_58160
2018.05.23 07:39:49 5 : Cmd: >{BlockingRegisterTelnet($cl,1772)}<
2018.05.23 07:39:49 5 : Cmd: >{BlockingStart('1772')}<
2018.05.23 07:39:49 5 : Cmd: >{CometBlueBTLE_ExecGatttool_Done('ThermostatWZ|6F:78:7E:36:1B:37|ok|read|0x18|HASH(0x1b43fe0)')}<
2018.05.23 07:39:49 4 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: gatttool return string: ThermostatWZ|6F:78:7E:36:1B:37|ok|read|0x18|HASH(0x1b43fe0)
2018.05.23 07:39:49 3 : CometBlueBTLE (ThermostatWZ) - ExecGatttool_Done: JSON error while request: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "HASH(0x1b43fe0)") at /usr/share/fhem/FHEM/74_CometBlueBTLE.pm line 636.
2018.05.23 07:39:49 4 : CometBlueBTLE (ThermostatWZ) - ProcessingNotification
2018.05.23 07:39:49 3 : CometBlueBTLE (ThermostatWZ) - ProcessingNotification: handle 0x18 - Noch in Queue: 0
2018.05.23 07:39:49 5 : CometBlueBTLE (ThermostatWZ) - ProcessingNotification: handle 0x18
2018.05.23 07:39:49 3 : CometBlueBTLE (ThermostatWZ) - handle 0x18
2018.05.23 07:39:49 5 : CometBlueBTLE (ThermostatWZ) - WriteReadings: Reading firmware, value altes value
2018.05.23 07:39:49 5 : Starting notify loop for ThermostatWZ, 1 event(s), first is T: 0 desired: 0
2018-05-23 07:39:49 CometBlueBTLE ThermostatWZ T: 0 desired: 0
2018.05.23 07:39:49 5 : End notify loop for ThermostatWZ
2018.05.23 07:39:49 4 : CometBlueBTLE (ThermostatWZ) - WriteReadings: Readings were written

CoolTux

Irgendwie fehlt mir da das write der pin.
Es aber eh sehr undurchsichtig. Kann es sein das Du global auf 5 gestellt hast? Stelle bitte nur das Attribut verbose beim Device selber auf 5.
Stimmt denn die Pin? Hast Du 4mal 0 als Pin ode rwas anderes?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

deify

Die Pin ist tatsächlich 0000. Das habe ich wieder zurück gesetzt. Das interessante ist ja, dass die schreib Befehle gesendet werden. Lediglich die readings werden nicht korrekt gelesen.

Aus Tests mit dem gattool direkt kann ich allerdings ein seltsames Verhalten bei der Pin Übertragung berichten.
Bei mir wurde das Passwort erst nach dem zweiten Mal schreiben akzeptiert...

Da das Schreiben mit deinem Modul jedoch funktioniert hat, war ich der Meinung, dass dieses Problem gelöst sei.

Grüße

CoolTux

Das Modul führt bei Problemen den gatttool Befehl bis zu 5x aus.
Ich brauche wirklich ein verbinde 5 Log und zwar nur vom Devices das verbose 5
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net