Neues Modul: EQ3 Bluetooth Thermostat (10_EQ3BT)

Begonnen von dominik, 12 November 2016, 11:45:15

Vorheriges Thema - Nächstes Thema

mele

Hallo Zusammen,

kurzes Zwischenupdate:

Ich habe seit gerstern Abend auch 2 Thermostate an einem Remote online. Steuerung muss ich mangels Zeit aber noch aktualisieren.

Dann werde ich weitere Remotes/Thermostate in Betrieb nehmen.

Bis hierhin schonmal vielen Dank. Vielleicht schaffe ich heute Abend mehr.

VG

Manuel
FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

Master_Nick

#541
ZitatNew entries in the CHANGED file:
2020-10-19: Initial release of CHANGED file :)


;D ;D ;D ;D 8) nice


Bei mir benötigt es echt kein keep_connected.
Und es ist dennoch unfassbar schnell - richtig angenehm.


*EDIT Alternativ ist "keep_connected" gerade kaputt und dauerhaft an?

Failed to execute function Attr: Traceback (most recent call last):
  File "/fhem_pythonbinding/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 236, in _onMessage
    ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout)
TypeError: Attr() missing 1 required positional argument: 'attr_value'


Das passiert bei mir (mit aktuell verfügbarer Version), wenn man keep_connected ändern möchte.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

#542
Eines meiner "ble_reset" verschwindet immer in den Status PythonBinding timeout:

Internals:
   DEF        ble_reset
   FUUID      5f8deff4-f33f-bf4c-2f52-0ce34dd7369b54d1
   FVERSION   10_PythonModule.pm:0.182830/2019-01-16
   IODev      bindingsio_remote
   NAME       ble_reset
   NR         202
   PYTHONTYPE ble_reset
   STATE      PythonBinding timeout
   TYPE       PythonModule
   READINGS:
     2020-10-19 22:10:00   interval        24h
     2020-10-21 21:26:30   state           PythonBinding timeout
   args:
     ble_reset
     PythonModule
     ble_reset
   argsh:
Attributes:
   IODev      bindingsio_remote
   group      Python
   room       Technikraum


Iodev dazu:

Internals:
   BindingType Python
   DEF        192.168.0.114:15733 Python
   DeviceName ws:192.168.0.114:15733
   FD         27
   FUUID      5f876620-f33f-bf4c-5e2a-332b1491818643ef
   FVERSION   10_BindingsIo.pm:0.182830/2019-01-16
   NAME       bindingsio_remote
   NR         191
   NTFY_ORDER 50-bindingsio_remote
   PARTIAL   
   STATE      opened
   TYPE       BindingsIo
   WEBSOCKET  1
   nextOpenDelay 10
   READINGS:
     2020-10-21 21:25:51   state           opened
Attributes:
   alias      Python EQ3 Connector TouchPi3
   group      Python
   room       Technikraum


Log im verbose 1 sagt erstmal gar nix. Auch in Verbose 5 im FHEM erstmal nix auffälliges.
Der Remote sagt im Status vom Service:

Zitat
pi@TouchPi3:/fhem_pythonbinding/FHEM/bindings/python/lib $ sudo systemctl status fhem_pythonbinding
● fhem_pythonbinding.service - FHEM PythonBinding
   Loaded: loaded (/etc/systemd/system/fhem_pythonbinding.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-10-21 21:25:41 CEST; 17h ago
Main PID: 10805 (python3)
    Tasks: 4 (limit: 2065)
   CGroup: /system.slice/fhem_pythonbinding.service
           ├─10805 /usr/bin/python3 FHEM/bindings/python/pythonbinding.py
           ├─27531 /home/pi/.local/lib/python3.7/site-packages/bluepy/bluepy-helper 0
           ├─27548 /home/pi/.local/lib/python3.7/site-packages/bluepy/bluepy-helper 0
           └─27583 /home/pi/.local/lib/python3.7/site-packages/bluepy/bluepy-helper 0

Oct 22 10:58:38 TouchPi3 python3[10805]: 2020-10-22 10:58:38,638 - ERROR    - lib.fhem_pythonbinding: Failed to execute function Attr: Traceback (most recent call last):
Oct 22 10:58:38 TouchPi3 python3[10805]:   File "/fhem_pythonbinding/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 236, in _onMessage
Oct 22 10:58:38 TouchPi3 python3[10805]:     ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout)
Oct 22 10:58:38 TouchPi3 python3[10805]: TypeError: Attr() missing 1 required positional argument: 'attr_value'
Oct 22 10:58:38 TouchPi3 python3[10805]: (id: 56830492)
Oct 22 10:58:38 TouchPi3 python3[10805]: 2020-10-22 10:58:38,655 - ERROR    - lib.fhem_pythonbinding: Failed to execute function Attr: Traceback (most recent call last):
Oct 22 10:58:38 TouchPi3 python3[10805]:   File "/fhem_pythonbinding/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 236, in _onMessage
Oct 22 10:58:38 TouchPi3 python3[10805]:     ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout)
Oct 22 10:58:38 TouchPi3 python3[10805]: TypeError: Attr() missing 1 required positional argument: 'attr_value'
Oct 22 10:58:38 TouchPi3 python3[10805]: (id: 82043346)

Der scheint schon gar nicht mehr auf äußeres zu reagieren - also scheint das "timeout" zu stimmen - hatte nämlich gerade ein reset now gemacht.

Habe das ble_reset mal an meinem anderen remote ausgeführt und dabei den status vom service bluetooth angesehen - der wurde das letzte mal am 17.10. neu gestartet und wurde nun auch dadurch nicht neu gestartet.

Habe diesen nun mal manuell neu gestartet:

● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-10-22 15:07:36 CEST; 15s ago
       Docs: man:bluetoothd(8)
   Main PID: 1466538 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18793)
     Memory: 1.3M
     CGroup: /system.slice/bluetooth.service
             └─1466538 /usr/lib/bluetooth/bluetoothd

Okt 22 15:07:36 duffstation bluetoothd[1466538]: Bluetooth management interface 1.14 initialized
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to clear UUIDs: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to set privacy: Rejected (0x0b)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to add UUID: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to add UUID: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to set device class: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to add UUID: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to add UUID: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to add UUID: Busy (0x0a)
Okt 22 15:07:36 duffstation bluetoothd[1466538]: Failed to set device class: Busy (0x0a)


Dies bleibt auch so, wenn ich stop mache und etwas warte und start mache.

Das reset_ble scheint auch beim Service Bluetooth weiter ohne sichtbaren Effekt in dessen Status (Startzeit bleibt die alte).
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

dominik

Hi,
ich habe vor 4 Tagen den Bug mit den PythonBinding timeout behoben, das sollte jetzt nicht mehr vorkommen. Kann es sein, dass dein Update laenger her ist?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

 ;) :D tatsächlich habe ich aktuell das Gefühl das sich da dann was überschritten hat. Seit meinem letzten Post und dem Neustart läuft es tadellos  ;D

Vielen Dank dir.
Hast du ggf eine Idee wo ich mal schauen müsste um mich an Farbänderung im state (Batterie voll/leer Ventil offen/zu Boost an/aus) zu machen? Hatte mal gesucht aber nicht mal die Herkunft des "C°" gefunden  ;D
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

dominik

Du kannst es mal ueber stateFormat und devStateIcon probieren. Wenn das klappt, kann man es in den Code aufnehmen.

Hier hatte ich bei gassistant ein ziemlich komplexes:
https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/39_gassistant.pm#L99

Da werden mehrere Readings ausgelesen und in Summe 3 Images angezeigt:
- gruener / roter Punkt, abhaengig ob lastServerError = ""
- reload Icon, wird orange bei reload
- restart Icon, wird rot bei Neustart

Ich glaube man braucht auch hier so ein komplexes devStateIcon mit Perl Code dahinter.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

Ah stimmt so herum geht es auch. Ja das in FHEM ist ja easy - hatte an im Code gedacht aber wenn du das dann so übernehmen kannst - alles klar ;-)

Danke
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

#547
Maaahlzeit :-)
So war jetzt mal seit Freitag nicht da und schaue gerade nach.

Flur/Kinderzimmer/Küche/Arbeitszimmer = offline (gesamter remote2)
Schlafzimmer/Wohnzimmer/Badezimmer = online (gesamter remote1)

Habe nun mal den Remote2 angeschaut der schien sich nicht mehr disconnectet zu haben von einem thermostat:
Zitatduff@duffstation:~$ bluetoothctl
Agent registered
[CHG] Controller 5C:F3:70:80:C5:C4 Pairable: yes
[CC-RT-BLE]#
[CC-RT-BLE]#
[CC-RT-BLE]#
[CC-RT-BLE]#
[CC-RT-BLE]# exit

Dann:
Zitatduff@duffstation:~$ bluetoothctl power off
Changing power off succeeded
duff@duffstation:~$ bluetoothctl power on
Changing power on succeeded

Und schon lief das wieder sauber:
Zitatduff@duffstation:~$ bluetoothctl
Agent registered
[CHG] Controller 5C:F3:70:80:C5:C4 Pairable: yes
[bluetooth]# exit

Nur die Thermostate wollten noch nicht wieder gesteuert werden ... also weiter - reset_ble ausgeführt:
- Vorher: Startzeit - Blueetooth Service
Zitat● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-10-22 15:17:10 CEST; 2 days ago
       Docs: man:bluetoothd(8)
   Main PID: 3342 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18793)
     Memory: 17.6M
     CGroup: /system.slice/bluetooth.service
             └─3342 /usr/lib/bluetooth/bluetoothd

Okt 22 15:17:10 duffstation systemd[1]: Starting Bluetooth service...
Okt 22 15:17:10 duffstation bluetoothd[3342]: Bluetooth daemon 5.53
Okt 22 15:17:10 duffstation systemd[1]: Started Bluetooth service.
Okt 22 15:17:10 duffstation bluetoothd[3342]: Starting SDP server
Okt 22 15:17:10 duffstation bluetoothd[3342]: Bluetooth management interface 1.14 initialized
Okt 24 22:58:45 duffstation bluetoothd[3342]: Failed to set mode: Failed (0x03)
Man sieht da hängt auch etwas quer... aber wichtiger:
Active: active (running) since Thu 2020-10-22 15:17:10 CEST; 2 days ago
reset_ble ist aber gesetzt auf alle 24h, dass scheint noch nicht zu klappen - nun nochmal manuell schauen.

Reset_ble manuell - remote 2:
Vorher: Active: active (running) since Thu 2020-10-22 15:17:10 CEST; 2 days ago
Nachher:  Active: active (running) since Thu 2020-10-22 15:17:10 CEST; 2 days ago

Leider scheint das auf remote2 (Ubuntu LTS) nicht zu gehen - nun mal am remote 1 schauen.

Reset_ble manuell - remote 1:
Vorher: Active: active (running) since Sat 2020-10-24 15:19:06 CEST; 7h ago
Nachher:  Active: active (running) since Sat 2020-10-24 15:19:06 CEST; 7h ago

Leider auch hier kein Erfolg  ??? Mh!

Bei beiden dann einmal manuell sudo systemctl restart bluetooth gemacht und dann waren die services auch sichtbar neu gestartet.

Generell aber - das Problem bei meinem remote 2 scheint eines zu sein was nichts hier mit dem Modul zu tun hat. Eher mit Ubuntu oder dem BT USB Stick :-D Unklar.
Ein "unplug - plug" behob es jedenfalls :-D


Es läuft also echt gut :-) bis auf die Kleinen Dinge mit dem ble_reset :-) Aber der erschien nicht mal zwingend nötig - wäre schick wenn er geht.
Vielen Dank weiterhin! :-)



Generell eine Frage, ist es absicht, dass python3 statt 3.7 genutzt wird (aufgefallen am remote1)?
● fhem_pythonbinding.service - FHEM PythonBinding
   Loaded: loaded (/etc/systemd/system/fhem_pythonbinding.service; enabled; vend
   Active: active (running) since Thu 2020-10-22 15:18:53 CEST; 2 days ago
Main PID: 1473 (python3)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

dominik

Kann es sein, dass du deinen Remote dazwischen neu gestartet hast, zumindest fhem_pythonbinding? ble_reset rechnet naemlich die X Stunden ab der Startzeit. Wenn es innerhalb von 24h neu gestartet wird, dann wird auch kein Reset gemacht. Ich denke ich bau da noch ein Attribut ein wo man dann auch selbst die Reset Zeit definieren kann.

Ich denke deine Thermostate sind wahrscheinlich mit keep_connected noch verbunden. Aktuell erfordert die Umstellung von keep_connected noch einen Restart von fhem_pythonbinding. Ich werde das adaptieren, weil so ist es verwirrend.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

Moin
Kannn ich mir eigentlich nicht vorstellen,  der letzte Neustart war Freitag bevor ich gefahren bin. Und keep_connected steht ja die gesamte Zeit auf off. Aber ich schrieb oben mal von einem Fehler,  der auftritt wenn man keep_connected ändern will.

Ansonsten wären 24 h von Freitag bis Sonntag minimum einmal vergangen und das ble_reset hätte einmal was tun müssen  - im service war aber uptime seit 22.10. 15:17:10.
Ich habe gestern die Services ja neu gestartet und geupdated nachdem ich hier schrieb - müssten ja dann heute um die Zeit den restart machen - ich beobachte es einfach  ;)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

dominik

Ah, danke für den Hinweis zu keep_connected, da ist noch ein Fehler drin. Den behebe ich heut Abend.
Sobald ble_reset ausgeführt wird schreibt es auch ein Reading lastreset. Ich werde aber dennoch ein Attribut mit aufnehmen, dann kann man auch fixe Zeiten setzen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

 ;)
Hey wenn ich helfen kann bin ich froh - du leistest hier die Pioniersarbeit :-)
Ich denke man kann sagen - so wie es läuft - so stabil lief es (bisher zumindest bei mir) noch nie.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

dominik

Achso, noch wegen Python3. Python3 ist im Normalfall ein Link auf die genaue Python3 Version. Wenn du python3 --version eingibst kommt da sicher 3.7.3.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

@Master_Nick, ich muss dich leider enttäuschen, dein keep_connected war wahrscheinlich nie wirklich off ;)

Ich habe keep_connected nun gefixed, es wird nun nach dem Setzen gleich korrekt übergeben und ein Neustart ist nicht mehr erforderlich. Da merkst du dann, dass "off" wirklich langsam ist...

ble_reset hat nun folgende neuen Funktionen:
- Reading lastreset: Zeitpunkt des letzten Resets
- Reading nextreset: Zeit wann der nächste Reset erfolgt
- Attribut reset_time: Zeit in HH:MM wann der Reset erfolgen soll, von diesen Zeitpunkt werden die Intervalle gerechnet. Default: 04:00
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

#554
Hehe kein Problem - das vermutete ich ja eh ;-)

Zitat von: Master_Nick am 21 Oktober 2020, 11:09:35

*EDIT Alternativ ist "keep_connected" gerade kaputt und dauerhaft an?

Failed to execute function Attr: Traceback (most recent call last):
  File "/fhem_pythonbinding/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 236, in _onMessage
    ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout)
TypeError: Attr() missing 1 required positional argument: 'attr_value'


Das passiert bei mir (mit aktuell verfügbarer Version), wenn man keep_connected ändern möchte.


Ich update mal :-)

Und trage hier meine bisherigen Ergebnisse ein:

- reset_ble funktioniert bei mir nun an remote 2: Active: active (running) since Mon 2020-10-26 13:44:32 CET; 27s ago
- bei remote 1 hat es irgendwie immer "PythonBinding timeout" (dominik ggf kannst du mal mit 2 remotes testen? mir scheint als wäre das ein permanenter Fehler)
  generell funktionierte aber auch dort der manuel reset: Active: active (running) since Mon 2020-10-26 13:46:25 CET; 1min 34s ago
- keep_connected lässt sich nun umschalten :-)

Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)