eQ-3 z Raspberry i supla-virtual-device działa u mnie już miesiąc.maciekelga pisze: ↑czw paź 29, 2020 7:25 pm Odświeżę temat, czy komuś udało się zrobić odczyt/sterowanie głowicami z poziomu Supli? Lub chociaż ogarnął komunikację głowica->esp/arduino etc ?
Głowica Termostatyczna Bluetooth
- Robert Błaszczak
- Posty: 4008
- Rejestracja: sob gru 22, 2018 8:55 pm
- Lokalizacja: Zielona Góra
- Kontakt:
Może chciałoby Ci się zrobić jakiś szerszy opis / tutorial?
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Funkcjonalność zrealizowana przeze mnie jest dość prosta, ale to było moim celem w tym momencie.
Mogę z aplikacji supla ustawić termostat zamontowany na grzejniku na 19°C lub 22°C.
Sprzęt potrzebny do zmontowania całości to Raspberry i głowica eq-3 bluetooth.
Pierwsza pozycja, to w moim przypadku już posiadane RPi 4B a druga pozycja jest do kupienia na znanym portalu aukcyjnym https://allegro.pl/listing?string=eq-3%20bluetooth.
Od strony programowej używam: skryptu Heckie75, supla-virtual-device i node-RED.
Instalacja:
1.
https://github.com/Heckie75/eQ-3-radiator-thermostat
2.
supla-virtual-device (opisane w linku https://github.com/lukbek/supla-virtual-device)
w pliku supla-virtual-device.cfg mam zdefiniowane dwa kanały
POWERSWITCH / LIGHTSWITCH pozostałość po testach
Na Raspbbery w folderze /home/pi/eQ-3/ mam stworzone dwa pliki:
supla_19.py o zawartości
supla_20.py o zawartości
3. w node-RED przy po mocy klocków zbudowane zależności do obsługi zapytań http://192.168.1.100:1880/grzejnik?ustaw=20 czy ?ustaw=19
Do zrobienia (w node-RED) jest jeszcze cykliczny odczyt temperatury ustawionej na termostacie i publikowanie jej do kanału
co pozwoli na pokazanie w aplikacji supla temperatury ustawionej na termostacie ręcznie.
Gdyby w supla-virtual-device dostępny był DIMMER to można byłoby ustawiać temperaturę z nieco większą dokładnością.
Mogę z aplikacji supla ustawić termostat zamontowany na grzejniku na 19°C lub 22°C.
Sprzęt potrzebny do zmontowania całości to Raspberry i głowica eq-3 bluetooth.
Pierwsza pozycja, to w moim przypadku już posiadane RPi 4B a druga pozycja jest do kupienia na znanym portalu aukcyjnym https://allegro.pl/listing?string=eq-3%20bluetooth.
Od strony programowej używam: skryptu Heckie75, supla-virtual-device i node-RED.
Instalacja:
1.
https://github.com/Heckie75/eQ-3-radiator-thermostat
Kod: Zaznacz cały
git clone https://github.com/Heckie75/eQ-3-radiator-thermostat.git
supla-virtual-device (opisane w linku https://github.com/lukbek/supla-virtual-device)
w pliku supla-virtual-device.cfg mam zdefiniowane dwa kanały
Kod: Zaznacz cały
[CHANNEL_11]
function=POWERSWITCH
command_on=python /home/pi/eQ-3/supla_19.py
[CHANNEL_12]
function=LIGHTSWITCH
command_on=python /home/pi/eQ-3/supla_22.py
Na Raspbbery w folderze /home/pi/eQ-3/ mam stworzone dwa pliki:
supla_19.py o zawartości
Kod: Zaznacz cały
import requests
r =requests.get('http://192.168.1.100:1880/grzejnik?ustaw=19')
Kod: Zaznacz cały
import requests
r =requests.get('http://192.168.1.100:1880/grzejnik?ustaw=20')
Do zrobienia (w node-RED) jest jeszcze cykliczny odczyt temperatury ustawionej na termostacie i publikowanie jej do kanału
Kod: Zaznacz cały
[CHANNEL_X]
function=TEMPERATURE
file=/home/pi/temp_termo.txt
Gdyby w supla-virtual-device dostępny był DIMMER to można byłoby ustawiać temperaturę z nieco większą dokładnością.
- Załączniki
-
- termostat.jpg (42.6 KiB) Przejrzano 1556 razy
- Robert Błaszczak
- Posty: 4008
- Rejestracja: sob gru 22, 2018 8:55 pm
- Lokalizacja: Zielona Góra
- Kontakt:
@tgaweda, wielkie dzięki za ten opis.
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Dziękuję za opis, pomógł bardzo, ale napotkałem problem. Mam dwie głowice, jedna działa poprawnie, druga zgłasza błąd jak poniżej:
./eq3.exp myEQ3 status expect: spawn id exp4 not open while executing "expect -re "\[0-9a-f\ ]*" { log "ok" }" (procedure "readHandle" line 10) invoked from within "readHandle $HANDLES(name)" (procedure "readDeviceInfo" line 5) invoked from within "readDeviceInfo" (procedure "init" line 8) invoked from within "init [expr $INIT(device) + $INIT(mode) + $INIT(timer) + $INIT(serial)]" ("^status$" arm line 2) invoked from within "switch -regexp $c { ^sync$ { init $INIT(mode) } ^comforteco.* { checkArgs $c 2 "comforteco" {^comforteco [0-9]{1,2}\.?[05]? [0..." (procedure "doCommand" line 10) invoked from within "doCommand" (file "./eq3.exp" line 1265)
Głowice różnią się firmware, co ciekawe pomimo błędu, temperatura zadana na głowicy zmienia się prawidłowo, jednak powyższy błąd jest o tyle niewygodny, bo uniemożliwa prawidłowy odczyt temperatury na jaką jest ustawiona głowica.
Czy macie jakieś pomysły jak rozwiązać powyższy problem? Z góry dziękuję za odpowiedzi i sugestie.
./eq3.exp myEQ3 status expect: spawn id exp4 not open while executing "expect -re "\[0-9a-f\ ]*" { log "ok" }" (procedure "readHandle" line 10) invoked from within "readHandle $HANDLES(name)" (procedure "readDeviceInfo" line 5) invoked from within "readDeviceInfo" (procedure "init" line 8) invoked from within "init [expr $INIT(device) + $INIT(mode) + $INIT(timer) + $INIT(serial)]" ("^status$" arm line 2) invoked from within "switch -regexp $c { ^sync$ { init $INIT(mode) } ^comforteco.* { checkArgs $c 2 "comforteco" {^comforteco [0-9]{1,2}\.?[05]? [0..." (procedure "doCommand" line 10) invoked from within "doCommand" (file "./eq3.exp" line 1265)
Głowice różnią się firmware, co ciekawe pomimo błędu, temperatura zadana na głowicy zmienia się prawidłowo, jednak powyższy błąd jest o tyle niewygodny, bo uniemożliwa prawidłowy odczyt temperatury na jaką jest ustawiona głowica.
Czy macie jakieś pomysły jak rozwiązać powyższy problem? Z góry dziękuję za odpowiedzi i sugestie.