eQ-3 z Raspberry i supla-virtual-device działa u mnie już miesiąc.maciekelga wrote: Thu Oct 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
-
tgaweda
- Posts: 101
- Joined: Mon Nov 13, 2017 9:21 pm
-
tgaweda
- Posts: 101
- Joined: Mon Nov 13, 2017 9:21 pm
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
Code: Select all
git clone https://github.com/Heckie75/eQ-3-radiator-thermostat.gitsupla-virtual-device (opisane w linku https://github.com/lukbek/supla-virtual-device)
w pliku supla-virtual-device.cfg mam zdefiniowane dwa kanały
Code: Select all
[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
Code: Select all
import requests
r =requests.get('http://192.168.1.100:1880/grzejnik?ustaw=19')Code: Select all
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
Code: Select all
[CHANNEL_X]
function=TEMPERATURE
file=/home/pi/temp_termo.txtGdyby w supla-virtual-device dostępny był DIMMER to można byłoby ustawiać temperaturę z nieco większą dokładnością.
You do not have the required permissions to view the files attached to this post.
-
sixkiller
- Posts: 62
- Joined: Mon Aug 16, 2021 7:59 pm
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.
