Neues Modul: EQ3 Bluetooth Thermostat (10_EQ3BT)

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

Vorheriges Thema - Nächstes Thema

Tomatenjoghurt

Zitat von: dominik am 03 Januar 2017, 15:31:17
@Tomatenjoghurt, lt. Wiki sollte das Modul aber desiredTemperature nutzen. Ich verwende zum Steuern der Heizung ausschließlich DOIF, da ich jeden Heizkörper auch abhängig von:
- Anwesenheit (ebenfalls Bluetooth)
- Bewegung
- Änderung am Thermostat selbst
- Wecker
- usw.
steuere. Jeder Heizkörper hat daher ein eigenes DOIF mit seiner eigenen Steuerung.
@dominik: Ich habe mich jetzt ein wenig eingehender mit DOIF beschäftigt und bin echt begeistert, wie mächtig das Modul ist. Als fhem-Anfänger ist das echt überwältigend, welche Welten sich da einem auftun :)
Ich glaube HEATING_CONTROL kann da wirklich gegen einpacken  :D

Zitat von: jensenbln am 06 Januar 2017, 21:59:28
die zuverlässigkeit der übertragung ist jedoch noch nicht so perferkt. ich habe viele error counts und die werte für temperatur werden nicht richtig übernommen.
woran kann das denn noch liegen?

Ein ähnliches Problem habe ich auch noch...ich kann sagen, dass es nicht an der Entfernung liegen kann. Ein Thermostat (Luftline 6-7 Meter) durch 2 Wände wird genauso oft falsch angesteuert, wie ein Thermostat, das sich im gleichen Raum (Luftlinie 2m) befindet. Beide Thermostate sind mit dem PI gepaired und getrustet...

Kawaci

hallo!
hat noch wer Probleme mit 1 nem thermostat? eines will sich nicht mit dem pi verbinden obwohl es schon angeschlossen war! bzw hat alles funktioniert!

dominik

Prüf mal mit bluetoothctl ob das Device vielleicht dort verbunden ist.
bluetootctl
#disconnect MACADDR


Ansonsten Reset am Thermostat durchführen. Das hatte ich mal bei einem neuen Thermostat welches sich nicht vernünftig verbinden lies.

Bezüglich Reichweite habe ich bei mir gerade einen USB Hub mit Netzteil angeschlossen. Eventuell bringt das Besserung...ich werde dann berichten.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tomatenjoghurt

Zitat von: dominik am 09 Januar 2017, 21:46:33
Prüf mal mit bluetoothctl ob das Device vielleicht dort verbunden ist.
bluetootctl
#disconnect MACADDR


Ansonsten Reset am Thermostat durchführen. Das hatte ich mal bei einem neuen Thermostat welches sich nicht vernünftig verbinden lies.

Bezüglich Reichweite habe ich bei mir gerade einen USB Hub mit Netzteil angeschlossen. Eventuell bringt das Besserung...ich werde dann berichten.

Ich hab den Bluetooth-Dongle seit kurzem an einer 1m USB-Verlängerung angeschlossen und das ganze per Patafix an eine etwas höhere Position geklebt. Das hat bei einem Thermostat bzgl Reichweite ganz gut geholfen. Dennoch fluten mir insgesamt alle Thermostate im Wechsel den Log  :-\

dominik

#64
Update...wäre super wenn paar Leute testen könnten.

Ich habe auch das Gefühl, dass seit der Nutzung des USB Hub mit externen Netzteil die Qualität der Übertragung besser ist. Hatte in der Küche immer Probleme und errorCounts von ca. 100/Tag. Gestern Nacht hatte ich 2. Ich beobachte das noch die nächste Tage und lass euch dann wissen ob es wirklich was bringt. Habe folgenden USB Hub nun im Einsatz: https://www.amazon.de/gp/product/B01E042UH2/ref=oh_aui_detailpage_o00_s01?ie=UTF8&psc=1

Unbedingt shutdown restart machen nach dem Einspielen!

v1.1.5 - 20170110
- FEATURE: use all available bluetooth interfaces to communicate
            with the bluetooth thermostat
- FEATURE: new reading bluetoothDevice (shows used hci device)
- CHANGE:  change maximum retries to 20
- FEATURE: new set function resetErrorCounters
- FEATURE: new set function resetConsumption (not today/yesterday)
- FEATURE: new reading lastChangeBy FHEM or thermostat
            indicates who was responsible for the last change
- CHANGE:  update readings only if changed (reduces number of events)
- FEATURE: support $readingFnAttributes
- FEATURE: add VERSION internal and log output
- CHANGE:  updateStatus changed to 5min intervall (prev. 3min)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Harst


Tomatenjoghurt

Update ist installiert, läuft soweit, danke!
Besonders das feature lastChangedBy klingt sehr interessant...

Was mich immernoch stutzig macht, ist folgendes:

2017.01.11 09:31:17 3: EQ3BT (Wohnzimmer.Heizung): updateStatus, 0x0411, 0311010B091F failed 30 times.
2017.01.11 09:34:18 3: EQ3BT (Bad.Heizung): updateStatus, 0x0411, 0311010B0922 failed 30 times.
2017.01.11 09:36:45 3: EQ3BT (Schlafzimmer.Heizung): updateStatus, 0x0411, 0311010B0924 failed 30 times.
2017.01.11 09:36:53 3: EQ3BT (Wohnzimmer.Heizung): updateStatus, 0x0411, 0311010B0924 failed 30 times.

Einträge dieser Art hab ich in einer Nacht ~250 bei 4 Thermostaten. Ich würde es bei einigen Thermostaten, die weiter weg sind, (Bad, Schlafzimmer) verstehen. Jedoch das Wohnzimmer-Thermostat ist 2m Luftlinie ohne Wand oder sonstiges dazwischen vom BT-Dongle entfernt - da kann es eigentlich nicht an der Entfernung liegen.  :-\

Ist es eventuell möglich, dass das Thermostat auf die fhem-Anfragen nicht "schnell" genug antwortet? Ich habe ein ähnliches Phänomen in der Android App auch - da dauert es bis zu 20 Sekunden, bis das Thermostat in der App als "verbunden" erkannt wird. Erst dann werden Daten gelesen bzw. geschrieben. Meinst du das könnte mit den Fehlern zusammenhängen? Kann man dem Modul - evtl auch Testweise- ein "wait" beibringen? Bzw. wartet das Modul auf eine Rückmeldung vom Thermostat?


dominik

Das kann beim updateStatus definitiv vorkommen, dass das Thermostat nicht schnell genug reagiert. Aktuell hab ich ein Timeout von 10s implementiert.

Btw, du dürftest noch nicht aktuelle Version verwenden. Dort ist der Retry auf 20x limitiert. Kannst ja dann mal ausprobieren in der Datei nach "timeout 10" suchen und durch "timeout 15" ersetzen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tomatenjoghurt

Zitat von: dominik am 11 Januar 2017, 23:08:04
Das kann beim updateStatus definitiv vorkommen, dass das Thermostat nicht schnell genug reagiert. Aktuell hab ich ein Timeout von 10s implementiert.

Btw, du dürftest noch nicht aktuelle Version verwenden. Dort ist der Retry auf 20x limitiert. Kannst ja dann mal ausprobieren in der Datei nach "timeout 10" suchen und durch "timeout 15" ersetzen.

Hmmm, stimmt, fhem sagt mir, dass ich noch die Version vom 11.12.2016 nutze...

Latest Revision: 13045

File              Rev   Last Change

fhem.pl           12966 2017-01-05 20:26:04Z rudolfkoenig
96_allowed.pm     11984 2016-08-19 12:47:50Z rudolfkoenig
98_autocreate.pm  11984 2016-08-19 12:47:50Z rudolfkoenig
95_Dashboard.pm   12251 2016-10-03 09:45:43Z talkabout
98_DOIF.pm        12961 2017-01-04 22:23:57Z Damian
98_dummy.pm       12700 2016-12-02 16:49:42Z rudolfkoenig
10_EQ3BT.pm       12744 2016-12-11 14:51:28Z dominikkarall
91_eventTypes.pm  11984 2016-08-19 12:47:50Z rudolfkoenig
01_FHEMWEB.pm     12984 2017-01-06 13:58:42Z rudolfkoenig
92_FileLog.pm     13027 2017-01-09 16:28:24Z rudolfkoenig
95_FLOORPLAN.pm   11443 2016-05-15 14:17:21Z ulimaass
91_notify.pm      11984 2016-08-19 12:47:50Z rudolfkoenig
99_SUNRISE_EL.pm  12485 2016-11-01 15:18:51Z rudolfkoenig
98_telnet.pm      11984 2016-08-19 12:47:50Z rudolfkoenig
99_Utils.pm       11984 2016-08-19 12:47:50Z rudolfkoenig
98_version.pm     11987 2016-08-19 17:13:41Z markusbloch

Blocking.pm       12648 2016-11-24 12:15:25Z rudolfkoenig
DevIo.pm          12716 2016-12-05 09:11:31Z rudolfkoenig
HttpUtils.pm      12740 2016-12-11 12:57:36Z rudolfkoenig
myUtilsTemplate.pm  7570 2015-01-14 18:31:44Z rudolfkoenig
RTypes.pm         10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm  12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm 11908 2016-08-06 15:09:55Z rudolfkoenig


....Ich habe gerade ein update und anschließend shutdown restart gemacht...mache ich irgendwas falsch?  ???

dominik

Ja, die Version oben ist noch nicht im SVN sondern nur hier zum Testen ;)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Tomatenjoghurt

#70
Argh, man sollte sich auch mal die gesamten Posts angucken... ;)
Danke; Ich lads gleich mal runter :)

EDIT:
Up'n'running seit 10 Minuten. hab das timeout auf 20 gesetzt...mal schauen, was die Nacht bringt.

EDIT2:
Das Update und der Time-Out hat marginale Verbesserungen gebracht...statt 250 Fehler in einer Nacht sind es jetzt nur noch 140. Evtl versuche ich es heute einmal mit einem timeout von 30, rein spaßeshalber...

cotecmania

Seit gestern 1.1.5 aktiv und folgende Meldungen staendig im LOG :

2017.01.13 00:11:54 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_EQ3BT.pm line 485.
2017.01.13 00:12:11 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_EQ3BT.pm line 485.
2017.01.13 00:18:25 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_EQ3BT.pm line 485.
2017.01.13 00:24:50 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_EQ3BT.pm line 485.


FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

dominik

Poste bitte mal von diesem Device die "list <name>" Ausgabe.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

cotecmania

Zitat von: dominik am 13 Januar 2017, 19:14:53
Poste bitte mal von diesem Device die "list <name>" Ausgabe.

Fehlermeldung taucht nicht mehr auf, keine Ahnung was da war ....
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

Darkentik

#74
Zitat von: Tomatenjoghurt am 06 Januar 2017, 22:37:19
@dominik: Ich habe mich jetzt ein wenig eingehender mit DOIF beschäftigt und bin echt begeistert, wie mächtig das Modul ist. Als fhem-Anfänger ist das echt überwältigend, welche Welten sich da einem auftun :)
Ich glaube HEATING_CONTROL kann da wirklich gegen einpacken  :D

Ein ähnliches Problem habe ich auch noch...ich kann sagen, dass es nicht an der Entfernung liegen kann. Ein Thermostat (Luftline 6-7 Meter) durch 2 Wände wird genauso oft falsch angesteuert, wie ein Thermostat, das sich im gleichen Raum (Luftlinie 2m) befindet. Beide Thermostate sind mit dem PI gepaired und getrustet...

Hi @Tomatenjoghurt,

ich bin auch seit 2 Wochen jetzt ca. Neuling in der Smarthome Welt und probiere mich in fhem aus.
Da ich jetzt dank dominik meine BT Thermostate am Laufen habe, wollte ich mal schauen wie ich jetzt noch aus der Ferne und nicht mit der Smartphone App die Wochenpläne etc. steuern kann.
Dominik hatte mir schon den Hinweis mit DOIF gegeben und über Google bin ich erstmals auf den Thread hier gestolpert. Ich war vorher in dem Smalltalk Thread, der hier schon eingangs von dominik erwähnt wurde.

Die Wiki Seite von DOIF und auch die CommandReference sind ja auch gut geschrieben, nur frage ich mich gerade wie ich an die Befehle komme mit denen ich die EQ3 Thermostate steuern kann?
Syntax:
define <name> DOIF (<Bedingung>) (<Befehle>) DOELSEIF (<Bedingung>) (<Befehle>) DOELSEIF ... DOELSE (<Befehle>)
Das ist ja wie "if then else".
Ich tue mich gerade schwer einen Anfang zu finden. Hast du vielleicht ein kurzes Beispiel wie man sowas hier in DOIF macht?
In einem anderen Thread (hab den gerade nicht gefunden) habe ich eine große Liste gesehen mit hex-Werten, die so ein Thermostat spricht aber da bin ich raus als Neuling.  :o
Ich bin für jeden Anhaltspunkt dankbar. Hauptsache ich komme Schritt für Schritt weiter.