Tech sterowniki
Dzień dobry. Od dłuższego czasu przyglądam się projektom dostępnym na forum i wygląda to imponująco. Nasuwa mi się pytanie: czy jest możliwa integracja Supli z API firmy Tech sterowniki do sterowania podłogówką ? Widziałem już taką implementację z HA na githubie, Obecnie dopiero zaczynam przygodę z suplą, proszę wybaczyć jeśli pytanie jest idiotyczne
- MadOnion78
- Posty: 1060
- Rejestracja: ndz lis 24, 2019 3:53 pm
- Lokalizacja: Głubczyce
Kiedyś o cośpodobnego pytałem.
viewtopic.php?p=78332#p78332
jeśli coś ruszy, będę zainteresowany w miarę moich możliwości IT
viewtopic.php?p=78332#p78332
jeśli coś ruszy, będę zainteresowany w miarę moich możliwości IT
3x SRW-01, 1x mSRW-01, 7x ROW-02, 2x SBW-02, 2x LIW-01, 1x SLW-02, 1x SLW-02, 1x MEW-01, 1x DIW-01, RNW-01
Ja wykorzystuje API TECH ale tylko do odczytu temperatury w pokojach. Mam w każdym pokoju sterownik od ogrzewania podłogowego więc na Raspberry poprzez API TECH odczytuje co jakoś czas temperaturę i informacje czy ogrzewanie w tej strefie jest włączone a później wysyłam do Supli przez SuplaVirtulaDevice.
Nie chciałem dawać dodatkowych termometrów więc tak to załatwiłem. Ale niestety nie da się sterować temperaturą. Tylko odczyt.
Wykorzystałem kanał temperatury i wilgotności. Z tym że zamiast wilgotności pokazuję informację czy dane pomieszczenie jest w danej chwili ogrzewane. Jeśli "wilgotność" jest 0 to ogrzewanie nie działa. Jeśli jest 10% to ogrzewanie jest włączone. Taki sposób prezentacji najbardziej mi odpowiadał.
Ale bardzo brakuje możliwości sterowania więc jeśli coś się pojawi to bardzo by mnie to ucieszyło.
U mnie wygląda to tak:
Nie chciałem dawać dodatkowych termometrów więc tak to załatwiłem. Ale niestety nie da się sterować temperaturą. Tylko odczyt.
Wykorzystałem kanał temperatury i wilgotności. Z tym że zamiast wilgotności pokazuję informację czy dane pomieszczenie jest w danej chwili ogrzewane. Jeśli "wilgotność" jest 0 to ogrzewanie nie działa. Jeśli jest 10% to ogrzewanie jest włączone. Taki sposób prezentacji najbardziej mi odpowiadał.
Ale bardzo brakuje możliwości sterowania więc jeśli coś się pojawi to bardzo by mnie to ucieszyło.
U mnie wygląda to tak:
- Załączniki
-
- IMG_20211117_162053.jpg (205.66 KiB) Przejrzano 2215 razy
-
- IMG_20211117_162111.jpg (159.42 KiB) Przejrzano 2215 razy
-
- Posty: 1
- Rejestracja: pn wrz 26, 2022 6:23 pm
Byłbyś w stanie przerzucić jakieś info o API z sterowników TECH ?
Posiadam Tech I3+ - i chciałbym z niego tylko odczytywać info o temperaturach lub informację, czy cos jest włączone czy nie.
Pozdrawiam.
Posiadam Tech I3+ - i chciałbym z niego tylko odczytywać info o temperaturach lub informację, czy cos jest włączone czy nie.
Pozdrawiam.
Tutaj jest link do opisu API z którego korzystałem.
https://emodul.eu/docs/api-v1.txt
Jeśli używasz aplikacji eModul to powinno działać ale musisz sam sprawdzić bo nie znam tego sterownika.
https://emodul.eu/docs/api-v1.txt
Jeśli używasz aplikacji eModul to powinno działać ale musisz sam sprawdzić bo nie znam tego sterownika.
- uchnast.michal
- Posty: 1074
- Rejestracja: wt cze 04, 2019 11:37 am
Zaloguj się do swojego emodul.pl i wpisz sobie https://emodul.pl/module_data
Wklej jsona tutaj. Obecnie zrobiłem to w php ale może uda mi się przepisać do Pythona. W połączeniu z supla virtual device będziesz miał dane do wyświetlenia.
Chyba, że @wojtek1 udostępni kod to pozostanie kwestia dostosowania pod Twój sterownik.
Wklej jsona tutaj. Obecnie zrobiłem to w php ale może uda mi się przepisać do Pythona. W połączeniu z supla virtual device będziesz miał dane do wyświetlenia.
Chyba, że @wojtek1 udostępni kod to pozostanie kwestia dostosowania pod Twój sterownik.
e-talking............
Byłem tam - Supla Offline Party 2023
Byłem tam - Supla Offline Party 2023
Cały projekt oparłem na SUPLA virtual device i zrobiłem to podobnie do odczytu temperatury z czujników Xiaomi.
Najpierw trzeba postępować zgodnie z dokumentacją od TECH żeby aktywować API i odczytać dane do autoryzacji zapytań.
Jak go będziesz miał to możesz edytować mój plik
OdczytTemperaturyOrzewania.py
Mam go w folderze /home/pi/TECHeMODUL musisz też tam stworzyć pliki .txt z odpowiednimi nazwami stref. U mnie to np. salon.txt itp
Dodatkowo mam plik konfiguracyjny w /etc/supervisor/conf.d/TECHeMODUL.conf
Musisz też dodać odczytane wartości do SUPLA virtual device
U mnie wygląda to tak:
Kanał wilgotności daje nam tutaj tylko wartości 0 lub 10. 10 ma oznaczać że ogrzewanie jest włączone natomiast 0 że w danej chwili strefa nie grzeje.
Jest to mój pierwszy taki skrypt więc idealny nie jest ale działał u mnie całkiem dobrze.
Najpierw trzeba postępować zgodnie z dokumentacją od TECH żeby aktywować API i odczytać dane do autoryzacji zapytań.
Jak go będziesz miał to możesz edytować mój plik
OdczytTemperaturyOrzewania.py
Mam go w folderze /home/pi/TECHeMODUL musisz też tam stworzyć pliki .txt z odpowiednimi nazwami stref. U mnie to np. salon.txt itp
Kod: Zaznacz cały
#!/usr/bin/python
import requests
import time
while True:
req = requests.get('https://emodul.eu/api/v1/users/xxxxxxxxx/modules/xxxxxxxxxx', headers={'Authorization': 'Bearer xxxxxxxxxx'})
# powyżej w miejsce xxxxx wpisz odpowiednie dane odczytane wg dokumentacji API
if req.status_code == 200:
result = req.json()['zones']['elements']
if result[0]['zone']['flags']['relayState'] == "on":
file = open("/home/pi/TECHeMODUL/salon.txt", "w")
file.write(f"{result[0]['zone']['currentTemperature']/10}\n{10}\n{result[0]['zone']['batteryLevel']}")
file.close()
elif result[0]['zone']['flags']['relayState'] == "off":
file = open("/home/pi/TECHeMODUL/salon.txt", "w")
file.write(f"{result[0]['zone']['currentTemperature']/10}\n{0}\n{result[0]['zone']['batteryLevel']}")
file.close()
if result[1]['zone']['flags']['relayState'] == "on":
file = open("/home/pi/TECHeMODUL/WC.txt", "w")
file.write(f"{result[1]['zone']['currentTemperature']/10}\n{10}\n{result[1]['zone']['batteryLevel']}")
file.close()
elif result[1]['zone']['flags']['relayState'] == "off":
file = open("/home/pi/TECHeMODUL/WC.txt", "w")
file.write(f"{result[1]['zone']['currentTemperature']/10}\n{0}\n{result[1]['zone']['batteryLevel']}")
file.close()
if result[2]['zone']['flags']['relayState'] == "on":
file = open("/home/pi/TECHeMODUL/kotlownia.txt", "w")
file.write(f"{result[2]['zone']['currentTemperature']/10}\n{10}\n{result[2]['zone']['batteryLevel']}")
file.close()
elif result[2]['zone']['flags']['relayState'] == "off":
file = open("/home/pi/TECHeMODUL/kotlownia.txt", "w")
file.write(f"{result[2]['zone']['currentTemperature']/10}\n{0}\n{result[2]['zone']['batteryLevel']}")
file.close()
# kolejne strefy wpisz analogicznie
elif req.status_code == 404:
print("Bledne zapytanie")
elif req.status_code == 401:
print("Please provide API key within a link")
time.sleep(120)
done
Dodatkowo mam plik konfiguracyjny w /etc/supervisor/conf.d/TECHeMODUL.conf
Kod: Zaznacz cały
[program:TechOdczyt]
command=python3 ./OdczytTemperaturyOrzewania.py
directory=/home/pi/TECHeMODUL
autostart=true
autorestart=true
user=pi
U mnie wygląda to tak:
Kod: Zaznacz cały
[CHANNEL_3]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/TECHeMODUL/salon.txt
min_interval_sec=30
file_write_check_sec=600
battery_powered=1
[CHANNEL_4]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/TECHeMODUL/WC.txt
min_interval_sec=30
file_write_check_sec=600
battery_powered=1
Jest to mój pierwszy taki skrypt więc idealny nie jest ale działał u mnie całkiem dobrze.
- uchnast.michal
- Posty: 1074
- Rejestracja: wt cze 04, 2019 11:37 am
A próbowałeś tak?:
Kod: Zaznacz cały
8. Update parameter
POST https://emodul.eu/api/v1/users/{user_id}/modules/{module_udid}/menu/{menu_type}/ido/{ido}/value/{value}
Parameter Type Required Description
menu_type String yes Options: 'MU', 'MI', 'MS', 'MP'
ido Number yes Parameter ido
value Number yes New value
e-talking............
Byłem tam - Supla Offline Party 2023
Byłem tam - Supla Offline Party 2023