Odczyt danych z kot...
 
Powiadomienia
Wyczyść wszystko

openHAB Odczyt danych z kotła CO lub integracja ST-505

33 Wpisów
4 Użytkownicy
1 Reactions
5,822 Wyświetleń
(@kamikac)
Wpisów: 225
Pomocny
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Spoko spoko, żaden kot nie ucierpi. No jak widzisz do zrobienia zapytania potrzebujesz token i user_id, a Ty mi to podałeś 😉

Poniżej skrypt, w którym musisz sobie tylko rozszyć parametry na itemy wg wzoru. Na samej górze masz parametry konfiguracyjne czyli nazwa użytkownika, hasło i nazwa modułu (u Ciebie było to 505).

rule "Emodul data"
when
    Time cron "0 0/1 * * * ?" // co 5 minut
then
    // Dane dostępowe do konta emodul.pl
	val String username = "user"
	val String password = "pass"
	val module_name = "505"

	// Zaloguj się do konta emodul.pl
	val String login_url = "https://emodul.eu/api/v1/authentication"
	val String login_data = '{"username": "' + username + '" ,"password": "' + password + '"}'
	val String login_response = sendHttpPostRequest(login_url, "application/json", login_data)
	logInfo("Emodul", "Response: {}", login_response)
	if (login_response === null) {
		logWarn("Emodul","Empty HTTP response!")
		return;
	}

	val access_token = transform("JSONPATH", "$.token", login_response)
	logInfo("Emodul","Access token: {}", access_token)
	if (access_token == "NULL") {
		logWarn("Emodul","Login failed!")
		return;
	}
	val user_id = transform("JSONPATH", "$.user_id", login_response)
	logInfo("Emodul","User ID: {}", user_id)

	// Pobierz dane z emodul.pl GET  https://emodul.eu/api/v1/users/{user_id}/modules 
	var String data_url = "https://emodul.eu/api/v1/users/" + user_id + "/modules"
	//var String data_url = "https://emodul.pl/api/data"
	var String data_response = sendHttpGetRequest(data_url, newHashMap("Authorization" -> "Bearer " + access_token), 5000)
	logInfo("Emodul","Data response: {}", data_response)
	val String module_udid = transform("JSONPATH", "$.[?(@.name=='" + module_name + "')].udid", data_response)
	logInfo("Emodul","module_udid: {}", module_udid)
	if (module_udid == "NULL") {
		logWarn("Emodul","Module {} not found! Rule exits", module_name )
		return;
	}
	data_url = "https://emodul.eu/api/v1/users/" + user_id + "/modules/" + module_udid
	data_response = sendHttpGetRequest(data_url, newHashMap("Authorization" -> "Bearer " + access_token), 5000) 
	logInfo("Emodul","Data response: {}", data_response)

	// Publikuj dane w openHAB3
	logInfo("Emodul", "Wynik JSONPATH id=4062: {}", transform("JSONPATH", "$.tiles[?(@.id=='4062')].params.openingPercentage", data_response))
	ProcOtwZawItem.postUpdate(transform("JSONPATH", "$.tiles[?(@.id=='4062')].params.openingPercentage", data_response))
end

 


 
Dodane : 23/01/2023 10:26 pm
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@kamikac 

po restarcie zarzuciło mi konsole JSONem.

Jest możliwość zrobienia przycisku/reguły restart do OH?

Dzięki bardzo, w weekend powinienem wrócić do domu to się biorę za to. Przez TeamV to nie zabawa 😉


 
Dodane : 23/01/2023 10:30 pm
(@kamikac)
Wpisów: 225
Pomocny
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Może zarzucić konsolę JSONem, bo masz w logu cały wynik zapytania o moduł. Zakomentarzuj tę linijkę i po problemie. Jak już wszystko ruszy to wywal z rule wszystko, co ma logInfo.

Chodzi Ci o restart OH z reguły?


 
Dodane : 23/01/2023 10:34 pm
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@kamikac 

Tak bo obecnie musze logować sie na serwer QNAP ręcznie wyłączyć poczekać i włączyć.

 


 
Dodane : 23/01/2023 10:58 pm
(@kamikac)
Wpisów: 225
Pomocny
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Na QNAPie to nie wiem, pewnie jakimś skryptem można to ogarnąć. Miałem na samym początku OpenHABa na QNAPie, ale szybko się z tego wyleczyłem.


 
Dodane : 23/01/2023 11:26 pm
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@kamikac 

Dlaczego wyleczyłeś? Miałeś jako kontener czy apkę?

U mnie z kontenerem były problemy a jako apka działa 98% no gdyby nie moje grzebanie to 100% bez problemu 


 
Dodane : 23/01/2023 11:37 pm
(@kamikac)
Wpisów: 225
Pomocny
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Miałem podstawowego QNAPa i strasznie muliło (a kontenerów w ogóle nie obsługiwał). Restartowac trzeba było z GUI, niezbyt wygodne, jak się grzebie.

Teraz mam RPi4 z dyskiem SSD. Tam mam weewxa, trochę własnych skryptów i aktualizacje częściej niż na QNAPie (tam było zawsze z pół roku do tyłu).


 
Dodane : 23/01/2023 11:41 pm
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@kamikac 

Ja sie zbieram żeby na Pi2 zrobić na czarną godzinę ale jakoś brak motywacji.

Nie mogę wydobyć stąd danych

},
            "widget2":{
               "txtId":1041,
               "value":666,
               "unit":7,
               "type":9,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            }
         }
      },

 

Mam albo Null albo że nie potrafi wydobyć danych ;/


 
Dodane : 23/01/2023 11:48 pm
(@kamikac)
Wpisów: 225
Pomocny
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Wg czego chcesz wybierać zestaw (po którym kluczu filtrować) i którą daną chcesz wyciągnąć?
Testowałeś wyrażenie JSONPath na tej stronie, co Ci wysłałem na początku? Jak tam nie działa, to i w skrypcie nie będzie.


 
Dodane : 24/01/2023 12:46 am
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

ok wiem co źle zrobiłem.

Zapytanie po prostu w kilku miejscach będzie dłuższe żeby wydobyć to co potrzebuję


 
Dodane : 24/01/2023 6:56 am
(@kamikac)
Wpisów: 225
Pomocny
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Super, że sobie poradzieś.

Jak skończysz, to wrzuć gotowy skrypt na forum (pamietaj, żeby usunąć login i hasło), może komuś się przyda.


 
Dodane : 29/01/2023 2:17 pm
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Jeszcze fazy testów i brak czasu żeby dokończyć jeszcze 2 wpisy o pracy/wygaśnięciu i jeszcze powiadomienia z alarmami 


 
Dodane : 12/02/2023 9:16 am
(@szpila86)
Wpisów: 367
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Czas mija a postępów brak.

Odczyt działa bezawaryjnie wyświetlanie w OH też.

Pobranie informacji o tym że piec pracuje lub alarmu że wygasł nie udało mi się wydobyć.

Nie widzę tego w JSON. Wygaśnięcie jest jako wyskakujące okno więc nawet nie wiem jak go pobrać i gdzie oczekiwać.

tech

Sama liczba parametrów którą zdecydowałem się wyświetlić w OH zmniejszyłem do podstawowych 😉

techOH

 
Dodane : 26/02/2023 11:20 am
Strona 2 / 2
Udostępnij: