Neues Modul: EQ3 Bluetooth Thermostat (10_EQ3BT)

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

Vorheriges Thema - Nächstes Thema

C_Herrmann

FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

C_Herrmann

Hallo Dominik,

einen Fehler habe ich noch gefunden:
Der Modus lässt sich nicht von manuell auf automatisch umstellen.

in PythonBinding.log findet sich dann:
2020-09-26 18:05:17,520 - ERROR    - lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 10, in run_blocking
    pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/lib/eq3bt/eq3bt.py", line 221, in set_mode
    self.mode = mode
AttributeError: can't set attribute
2020-09-26 18:05:17,522 - ERROR    - asyncio: Task exception was never retrieved
future: <Task finished coro=<eq3bt.set_and_update() done, defined at /opt/fhem/FHEM/bindings/python/lib/eq3bt/eq3bt.py:159> exception=AttributeError("can't set attribute")>
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/eq3bt/eq3bt.py", line 160, in set_and_update
    await utils.run_blocking(fct)
  File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 10, in run_blocking
    pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/lib/eq3bt/eq3bt.py", line 221, in set_mode
    self.mode = mode
AttributeError: can't set attribute

FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

dominik

Danke für die Info. Hab es gerade behoben, einfach ein "update" machen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

C_Herrmann

FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

Master_Nick

Moin,

mir ist eingefallen, dass ich tatsächlich zwingend die Struktur benötigen würde wo ich auf einem entfernten Pi/Linux das ganze ausführen kann.
Habe im Flur ein Touchpanel mit einem Pi3B+ das Wohnzimmer/Bad/Schlafzimmer/Küche versorgt. Am Server selber wird dann Arbeitszkimmer/Kinderzimmer/Flur versorgt.
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

Bin gerade dabei mir das anzuschauen und melde mich sobald ich was zum Testen habe.

Mein Plan:
- Am lokalen und Remote Pi laeuft dann der Python Server
- Jedes Device kann dann entweder fuer den lokalen oder remote Server konfiguriert werden, standardmaessig Lokal

Damit waere das fuer jedes PythonModule verwendbar, egal ob eq3bt, googlecast, usw. und muss nicht im Modul selbst gebaut werden. Mal sehen ob das so klappt :)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

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

#457
So...ich habs gerade integriert und mit meiner Nespresso Bluetooth Maschine erfolgreich getestet :)

Folgendes ist zu tun:
- update in FHEM
- Restart
- Remote RPi:
    - fhem_pythonbinding installieren (https://github.com/dominikkarall/fhem_pythonbinding, nur was bei Console steht)
    - git clone https://github.com/dominikkarall/fhem_pythonbinding.git
    - cd fhem_pythonbinding/FHEM
    - python3 bindings/python/pythonbinding.py
- FHEM (am Master, am Remote muss KEIN FHEM installiert werden):
    - define bindingsio_remote BindingsIo IP:15733 Python
    - define eq3device PythonModule eq3bt MAC
    - attr eq3device IODev bindingsio_remote

Das ist noch BETA und daher bitte nicht wundern wenn etwas nicht sofort funktioniert. Lass mich einfach wissen ob es bei dir funktioniert oder du irgendwo nicht weiter kommst.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Master_Nick

Ach herrje! :-D Danke das ging fix - bin gespannt :-D mal sehen wann ich es umgestellt bekomme.... :-D

Aber schon mal jetzt tausend Dank!
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.... ;-)

Teonyr

Hallo,
ich habe ein eQ-3 Bluetooth Thermostat, welche ich bisher über define NAME EQ3BT MAC eingebunden habe.
Nun wollte ich mal das mit dem Python probieren.
Habe also die Installation (headless) auf meinem RPi4 gemacht, wie es hier steht: https://github.com/dominikkarall/fhem_pythonbinding
Der "state" steht bei diesem Device allerdings permanent auf "connecting" und wenn ich die "desiredTemperature" setzen möchte, dann gibt er mir folgende Fehlermeldung aus:

Failed to execute function Set: Traceback (most recent call last): File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 223, in onMessage ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout) File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for return fut.result() File "/opt/fhem/FHEM/bindings/python/lib/eq3bt/eq3bt.py", line 100, in Set return await utils.handle_set(self.set_list_conf, self, hash, args, argsh) File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 76, in handle_set return await fct_call(final_params) File "/opt/fhem/FHEM/bindings/python/lib/eq3bt/eq3bt.py", line 181, in set_desiredTemperature asyncio.create_task(self.set_and_update(functools.partial(self.thermostat.set_target_temperature, temp))) AttributeError: 'eq3bt' object has no attribute 'thermostat'

Habe ich irgendwas vergessen oder falsch gemacht?
Das Device hat wirklich nicht das attribut "thermostat", ich kann es aber auch nicht hinzufügen.


dominik

#460
Hi,

warte bitte bis es von connecting auf update geht und dann die Readings erhaelt. Das kann bis zu 3 Minuten dauern. Ich hatte da ein sleep eingebaut, damit beim Start von FHEM nicht alle Devices gleichzeitig probieren ueber Bluetooth zu verbinden, da die sich sonst einfach nur selbst stoeren.

//Edit: Bitte auch das nicht vergessen:
                        Please add following configuration to /etc/dbus-1/system.d/bluetooth.conf:
                        <policy user="fhem">
                            <allow own="org.bluez"/>
                            <allow send_destination="org.bluez"/>
                            <allow send_interface="org.bluez.GattCharacteristic1"/>
                            <allow send_interface="org.bluez.GattDescriptor1"/>
                            <allow send_interface="org.freedesktop.DBus.ObjectManager"/>
                            <allow send_interface="org.freedesktop.DBus.Properties"/>
                        </policy>
                        Restart dbus afterwards: sudo systemctl restart dbus
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Teonyr

Hey,

danke, nun hat es geklappt. :)
Habe die bluetooth.conf angepasst und das mit define NAME EQ3BT MAC definierte Device gelöscht.
Anschließend noch einmal per define NAME PythonModule eq3bt MAC das Python-eQ3bt-Device angelegt und nun gehts.

dominik

Danke fuer die Info. Dann lag es an der bluetooth.cfg...

Eigentlich sollte der oben von mir gepostete englische Text im "state" auftauchen. War das bei dir nicht der Fall? Wenn nicht, muss ich das nochmals testen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Teonyr

Nein leider nicht, da stand nur "connecting".
Auch im Log/EventMonitor stand nichts.

dominik

Ok, dann werde ich das nochmals testen, weil gerade das ist wichtig.
Übrigens, du kannst beide Device (alt und neu) parallel nutzen, du musst das alte Device nicht löschen.

Was haltet ihr eigentlich davon die Bluetooth Verbindung aktiv zu halten? Damit sind Temperaturanpassung oder andere Einstellungen nämlich innerhalb einer Sekunde am Thermostat - genauso wie wenn man die CalorBT App nutzt. Ich teste das gerade um auch zu sehen wie stark das die Batterielaufzeit beeinflusst.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik