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 Likes
2,573 Wyświetleń
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Witam,

czy ktoś ma może zintegrowany odczyt danych z kotła CO opartego na sterowniku Tech st-480 i modułu Tech st-505?

Temat ruszony na elektrodzie ( https://www.elektroda.pl/rtvforum/topic2689981.html) może jest ktoś kto wytłumaczy jak to zrobić dla OH3?

 
Dodane : 18/12/2022 1:22 pm
(@edass)
Wpisów: 216
Weteran
 

Cześć. 

Jedną z ostatnich wiadomoaci na elektrodzie jest moja wypowiedź. Niestety nikt się nie odezwał. Aktualnie już nie używam sterownika TECH ale "obszedłem" te odczyty ze sterownika Techa. Na bazie ESP 8266 z Tasmotą oraz kilkoma czujnikami temperatury zrobiłem dodatkowy układ za pomocą którego niezależnie monitoruje piec. Dodatkowo dołożyłem czujnik odległości do zasobnika i dzięki temu mam pomiar napełnienia zasobnika.



 

 
Dodane : 18/12/2022 10:26 pm
(@coalega)
Wpisów: 1
Świeżak
 

Witam, Mam sterownik tech i2, czy ktoś umie zrobić połączenie z domoticzem,  albo przez esp8266 albo Ethernet. Pozdrawiam. P.s. na elektrodzie użytkownikowi Fantom się  udało, ale nie ma z nim kontaktu.

 
Dodane : 22/12/2022 5:00 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Czyli na tym forum tego nie ruszymy 😶 

 
Dodane : 29/12/2022 10:10 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Znalazłem podobny temat u Supli może komuś coś przyjdzie do głowy...

https://forum.supla.org/viewtopic.php?t=9603

 

Co myślicie o czymś takim?

 

import requests
import json

# Dane dostępowe do konta emodul.pl
username = "your_username"
password = "your_password"

# Zaloguj się do konta emodul.pl
login_url = "https://emodul.pl/api/login"
login_data = {"username": username, "password": password}
login_response = requests.post(login_url, json=login_data)
login_response_json = json.loads(login_response.text)

# Pobierz token dostępu
access_token = login_response_json["access_token"]

# Pobierz dane z emodul.pl
data_url = "https://emodul.pl/api/data"
headers = {"Authorization": "Bearer " + access_token}
data_response = requests.get(data_url, headers=headers)
data = json.loads(data_response.text)

# Publikuj dane w openHAB3
openhab_url = "http://your_openhab_ip:8080/rest/items/your_item_name"
for key, value in data.items():
    requests.post(openhab_url, json={"state": value})

 

lub może tak?

rule "Emodul data"
when
    Time cron "0 0/5 * * * ?" // co 5 minut
then
    // Dane dostępowe do konta emodul.pl
    var String username = "your_username"
    var String password = "your_password"
    var String access_token
    var String data

    // Zaloguj się do konta emodul.pl
    var String login_url = "https://emodul.pl/api/login"
    var String login_data = '{"username":"'+username+'","password":"'+password+'"}'
    var HttpResponse login_response = sendHttpPostRequest(login_url, "application/json", login_data)
    if (login_response.responseCode != 200) {
        logError("Error while logging in to emodul.pl. Response code: " + login_response.responseCode)
    } else {
        // Pobierz token dostępu
        access_token = login_response.headers.get("access_token")
        // Pobierz dane z emodul.pl
        var String data_url = "https://emodul.pl/api/data"
        var HttpResponse data_response = sendHttpGetRequest(data_url, "application/json", null, [new HttpHeader("Authorization", "Bearer " + access_token)])
        if (data_response.responseCode != 200) {
            logError("Error while fetching data from emodul.pl. Response code: " + data_response.responseCode)
        } else {
            data = data_response.response
            // Publikuj dane w openHAB3
            parseJson(data).getMembers().forEach[key, value |
                val String itemName = key
                val item = getItem(itemName)
                if (item != null) {
                    postUpdate(itemName, value)
                } else {
                    logError("Item "+itemName+" not found.")
                }
            ]
        }
    }
end

 

 
Dodane : 15/01/2023 10:22 pm
(@kamikac)
Wpisów: 226
Pomocny
 

Bardzo ładnie, ale:

  • na elektrodzie skupili sie na rozkminieniu protokołu idącego magistralą szeregową, powyższy kod ściaga dane z chury producenta
  • w powyższym kodzie dostajemy dane (w jsonie), które sa rozszyte na poszczególne itemy (ale nazwy itemów musza się pokrywać z nazwami kluczy json).
  • w kodzie widzę tylko odczyt danych, tylko to jest potrzebne?

Pozdrawiam

 
Dodane : 16/01/2023 1:57 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

Wolałbym bez chmury ale nie wiem jak 🫤 więc szukam innego sposobu.

Idąc tropem z  Suppli loguje się na emodul.pl i po zalogowaniu w adresie dopisuje module _data   https://emodul.pl/module_data  i wyświetla mi json'a z nazwami, id, i wartościami tego co mam wyświetlane na stronie głównej więc myślę jak to zautomatyzować i wyświetlić w OH

fragment tego co mam z module_data

{"zones":{},"tiles":[{"id":2000,"parentId":0,"type":50,"menuId":0,"orderId":null,"visibility":true, "params":{"description":"Wersja oprogramowania kontrolera","wersja":"1.3.0","txtId":873,"iconId":50,"companyId":30,"controllerName":"ST- 480","mainControllerId":169709}},{"id":2011,"parentId":0,"type":40,"menuId":0,"orderId":2,"visibility":true,"parametry ":{"description":"Informacje tekstowe","statusId":1067,"headerId":1039,"iconId":50,"options":[]}},{"id":2050,"parentId": 0,"type":6,"menuId":2060,"orderId":5,"visibility":true,"params":{"description":"Uniwersalny status z widżetami","statusId":1,"iconId":106,"widget1":{"txtId":760, "value":0,"unit":6,"type":0,"params":[0,0,0,0,0]},"widget2":{"txtId":774,"value": 286,"unit":7,"type":9,"params":[0,0,0,0,0]}}},{"id":2051,"parentId":0,"type": 6,"menuId":2061,"orderId":8,"visibility":true,"params":{"description":"Uniwersalny status z widżetami","statusId":1,"iconId":105,"widget1 ":{"txtId":760,"value":0,"unit":6,"type":0,"parametry":[0,0,0,0,0]},"widget2":{"txtId":1041,"value":782,"unit":7,"type":9,"params":[0,0,0,0,0]}}},{"id ":2053,"parentId":0,"type":1,"menuId":0,"orderId":3,"visibility":true,"params":{"description":"Czujnik temperatury","WorkStatus" ":true,"txtId":795,"value":17,"batteryLevel":null,"signalStrength":null}},{"id":2054,"parentId":0,"type":1," menuId":0,"orderId":4,"visibility":true,"params":{"description":"Czujnik temperatury","workingStatus":true,"txtId":1043,"value":197," poziom baterii":null,"Siła sygnału":null}},{"id":2055,"parentId":0,"type":1,"menuId":0,"orderId":12,"visibility":false,"params":{"description":"Czujnik temperatury","workingStatus":false," txtId":196,"value":-2030,"batteryLevel":null,"signalStrength":null}},{"id":2056,"parentId":0,"type":1,"menuId":0 ","orderId":9,"visibility":true,"params":{"description":"Czujnik temperatury","workingStatus":true,"txtId":1040,"value":229,"batteryLevel":null ","signalStrength":null}},{"id":4050,"parentId":0,"type":21,"menuId":0,"orderId":15,"visibility":false,"params": {"opis":"Dodatkowa pompa","workingStatus":false,"pumpNumber":1,"txtId":922}},{"id":4051,"parentId":0,"type":21,"menuId":0, "orderId":17,"visibility":false,"params":{"description":"Dodatkowa pompa","workingStatus":false,"pumpNumber":2,"txtId":922}},{"id" :4052,"parentId":0,"type":40,"menuId":2006,"orderId":18,"visibility":false,"params":{"description":"Informacje tekstowe","statusId" :473,"headerId":814,"iconId":3,"opcje":[]}},{"id":4056,"parentId":0,"type":11,"menuId":0," orderId":10,"visibility":true,"params":{"description":"Przekaźnik","workingStatus":false,"txtId":571,"iconId":17}},{"id":4057,"parentId":0,"type":11 ","menuId":0,"orderId":14,"visibility":false,"params":
 
Dodane : 16/01/2023 7:22 am
(@edass)
Wpisów: 216
Weteran
 

Spójrz na wątek o Airly - @Adrian opisał dokładnie jak dodać takie dane do OH. Tutaj może być problem z zalogowaniem się do chmury ale warto sprawdzić.  Potrzebny będzie Http binding i Json. Reszta to stworzenie odpowiednich items (number/test). 

 

 
Dodane : 16/01/2023 8:33 am
(@kamikac)
Wpisów: 226
Pomocny
 

@szpila86 JSON musi być kompletny, żeby go sparsować. Wrzuć całą odpowiedź serwera tutaj i kliknij process.

Jak nie będzie błędów wklej tutaj jako kod. Wtedy będzie można JSONPath'em wydobyć parametry.

Można by jeszcze "podsłuchiwać" transmisję sterownika ze stroną na jakimś sprytnym routerze i odczytywać przesyłane parametry (też jest to w tym wątku na elektrodzie), ale to trzeba by napisac coś więcej niż rule do openHABa.

 
Dodane : 18/01/2023 11:43 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

nie zmieniałem nic z ustawień strony.

{
   "zones":{
      
   },
   "tiles":[
      {
         "id":2000,
         "parentId":0,
         "type":50,
         "menuId":0,
         "orderId":null,
         "visibility":true,
         "params":{
            "description":"Controller software version",
            "version":"1.3.0",
            "txtId":873,
            "iconId":50,
            "companyId":30,
            "controllerName":"ST-480",
            "mainControllerId":169709
         }
      },
      {
         "id":2011,
         "parentId":0,
         "type":40,
         "menuId":0,
         "orderId":2,
         "visibility":true,
         "params":{
            "description":"Text information",
            "statusId":1067,
            "headerId":1039,
            "iconId":50,
            "options":[
               
            ]
         }
      },
      {
         "id":2050,
         "parentId":0,
         "type":6,
         "menuId":2060,
         "orderId":5,
         "visibility":true,
         "params":{
            "description":"Universal status with widgets",
            "statusId":1,
            "iconId":106,
            "widget1":{
               "txtId":760,
               "value":0,
               "unit":6,
               "type":0,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            },
            "widget2":{
               "txtId":774,
               "value":331,
               "unit":7,
               "type":9,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            }
         }
      },
      {
         "id":2051,
         "parentId":0,
         "type":6,
         "menuId":2061,
         "orderId":8,
         "visibility":true,
         "params":{
            "description":"Universal status with widgets",
            "statusId":1,
            "iconId":105,
            "widget1":{
               "txtId":760,
               "value":0,
               "unit":6,
               "type":0,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            },
            "widget2":{
               "txtId":1041,
               "value":288,
               "unit":7,
               "type":9,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            }
         }
      },
      {
         "id":2053,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":3,
         "visibility":true,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":true,
            "txtId":795,
            "value":6,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":2054,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":4,
         "visibility":true,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":true,
            "txtId":1043,
            "value":182,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":2055,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":12,
         "visibility":false,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":false,
            "txtId":196,
            "value":-2030,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":2056,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":9,
         "visibility":true,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":true,
            "txtId":1040,
            "value":228,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":4050,
         "parentId":0,
         "type":21,
         "menuId":0,
         "orderId":15,
         "visibility":false,
         "params":{
            "description":"Additional pump",
            "workingStatus":false,
            "pumpNumber":1,
            "txtId":922
         }
      },
      {
         "id":4051,
         "parentId":0,
         "type":21,
         "menuId":0,
         "orderId":17,
         "visibility":false,
         "params":{
            "description":"Additional pump",
            "workingStatus":false,
            "pumpNumber":2,
            "txtId":922
         }
      },
      {
         "id":4052,
         "parentId":0,
         "type":40,
         "menuId":2006,
         "orderId":18,
         "visibility":false,
         "params":{
            "description":"Text information",
            "statusId":473,
            "headerId":814,
            "iconId":3,
            "options":[
               
            ]
         }
      },
      {
         "id":4056,
         "parentId":0,
         "type":11,
         "menuId":0,
         "orderId":10,
         "visibility":true,
         "params":{
            "description":"Relay",
            "workingStatus":false,
            "txtId":571,
            "iconId":17
         }
      },
      {
         "id":4057,
         "parentId":0,
         "type":11,
         "menuId":0,
         "orderId":14,
         "visibility":false,
         "params":{
            "description":"Relay",
            "workingStatus":false,
            "txtId":573,
            "iconId":17
         }
      },
      {
         "id":4059,
         "parentId":0,
         "type":32,
         "menuId":0,
         "orderId":16,
         "visibility":false,
         "params":{
            "description":"Disinfection",
            "txtId":922,
            "percentage":0
         }
      },
      {
         "id":4060,
         "parentId":0,
         "type":31,
         "menuId":0,
         "orderId":1,
         "visibility":true,
         "params":{
            "description":"Fuel supply",
            "percentage":0,
            "hours":0
         }
      },
      {
         "id":4061,
         "parentId":0,
         "type":22,
         "menuId":0,
         "orderId":13,
         "visibility":true,
         "params":{
            "description":"Fan",
            "workingStatus":false,
            "fanNumber":0,
            "gear":0,
            "txtId":null
         }
      },
      {
         "id":4062,
         "parentId":0,
         "type":23,
         "menuId":2220,
         "orderId":6,
         "visibility":true,
         "params":{
            "description":"Built-in valve",
            "workingStatus":true,
            "valveNumber":0,
            "currentTemp":240,
            "returnTemp":230,
            "setTempCorrection":0,
            "openingPercentage":15,
            "valvePump":0,
            "boilerProtection":0,
            "returnProtection":1,
            "setTemp":42,
            "txtId":-1
         }
      },
      {
         "id":4063,
         "parentId":0,
         "type":24,
         "menuId":2270,
         "orderId":7,
         "visibility":true,
         "params":{
            "description":"Built-in valve",
            "workingStatus":true,
            "valveNumber":1,
            "currentTemp":240,
            "returnTemp":230,
            "setTempCorrection":0,
            "openingPercentage":100,
            "valvePump":0,
            "boilerProtection":0,
            "returnProtection":0,
            "setTemp":38,
            "txtId":-1
         }
      },
      {
         "id":4065,
         "parentId":0,
         "type":11,
         "menuId":0,
         "orderId":11,
         "visibility":true,
         "params":{
            "description":"Relay",
            "workingStatus":false,
            "txtId":550,
            "iconId":101
         }
      }
   ],
   "lastUpdate":"2023-01-19 15:05:00.845762+01"
}
 
Dodane : 19/01/2023 4:06 pm
(@kamikac)
Wpisów: 226
Pomocny
 

I wszystko pięknie widać. Teraz wrzucasz tego jsona do lewego pola tekstowego:

https://jsonpath.com/

U góry podajesz np ponizszy JSONPath i otrzymujesz % otwarcia wewnętrznego zaworu:

$.tiles[?(@.id=='4062')].params.openingPercentage

No i teraz nasz skrypt wygląda tak:

rule "Emodul data"
when
    Time cron "0 0/5 * * * ?" // co 5 minut
then
    // Dane dostępowe do konta emodul.pl
    var String username = "your_username"
    var String password = "your_password"
    var String access_token
    var String data

    // Zaloguj się do konta emodul.pl
    var String login_url = "https://emodul.pl/api/login"
    var String login_data = '{"username":"'+username+'","password":"'+password+'"}'
    var HttpResponse login_response = sendHttpPostRequest(login_url, "application/json", login_data)
    if (login_response.responseCode != 200) {
        logError("Error while logging in to emodul.pl. Response code: " + login_response.responseCode)
    } else {
        // Pobierz token dostępu
        access_token = login_response.headers.get("access_token")
        // Pobierz dane z emodul.pl
        var String data_url = "https://emodul.pl/api/data"
        var HttpResponse data_response = sendHttpGetRequest(data_url, "application/json", null, [new HttpHeader("Authorization", "Bearer " + access_token)])
        if (data_response.responseCode != 200) {
            logError("Error while fetching data from emodul.pl. Response code: " + data_response.responseCode)
        } else {
            data = data_response.response
            // Publikuj dane w openHAB3
			ProcOtwZawItem.postUpdate(transform("JSONPATH", "$.tiles[?(@.id=='4062')].params.openingPercentage", data))
			//Następne itemy
			
		}
    }
end

Proponuję każdy JSONPath przetestować na stronie przed wrzuceniem do rule.

 
Dodane : 20/01/2023 12:00 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

A ja się na piechotę męczyłem z JSONem 😭 

Mimo instalacji Http nie rozpoznaje mi poleceń

Script execution of rule with UID 'eModul-1' failed: 'responseCode' is not a member of 'HttpResponse'; line 15, column 9, length 27 in eModul

może tak to powinno być?

Integer responseCode = request.getResponseCode();
        if (responseCode != 200) {
            httpResponse = responseCode.toString();
        }
 
Dodane : 20/01/2023 6:58 am
(@kamikac)
Wpisów: 226
Pomocny
 

A dołożyłeś

import requests
import json

na początku pliku rules?

 
Dodane : 20/01/2023 8:52 am
adrian reacted
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

tak mam wpisane przed "rules"

nawet stronę z emodul.eu zmieniłem na emodul.pl bo obie niby wyświetlają to samo.

Strone logowania też zmieniłem na

var String login_url = "https://emodul.pl/login"
Bo w zasadzie po wylogowaniu z konta to się wyświetla bez api
 
 
Dodane : 20/01/2023 2:26 pm
(@kamikac)
Wpisów: 226
Pomocny
 

@szpila86 Skąd wziąłęs ten skrypt? Teraz widze, że tam jest błąd: sendHttpPostRequest zwraca tylko String z odpowiedzią serwera, nie zwraca żadnego obiektu, który miałby właściwość responseCode, więc ten if nie ma co sprawdzić ( https://www.openhab.org/docs/configuration/actions.html#http-actions ).

Trzeba to przerobić, żeby skrypt szedł dalej, jeśli odpowiedź serwera nas zadowala.

 
Dodane : 21/01/2023 11:38 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

Błądzę po forach próbując czegoś się nauczyć i samemu zrobić 😵‍💫

 
Dodane : 21/01/2023 11:58 pm
(@kamikac)
Wpisów: 226
Pomocny
 

Cześć

Wymodziłem taki rule. Nieststy nie posiadam zarejestrowanego żadnego modułu, więc mam odpowiedzw postaci pustej tablicy. Endpoint, który podałeś ( https://emodul.pl/api/data) zawsze zwraca 404 Not Found.

Wg mnie należy znaleźć id modulu z odpowiedzi Data response  i udczytać dane z endpointa

GET  https://emodul.eu/api/v1/users/{user_id}/modules/{module_udid} 

rule:

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

    // Zaloguj się do konta emodul.pl
    var String login_url = "https://emodul.eu/api/v1/authentication"
    var String login_data = '{"username": "' + username + '" ,"password": "' + password + '"}'
    var 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;
	}
	access_token = transform("JSONPATH", "$.token", login_response)
	logInfo("Emodul","Access token: {}", access_token)
	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)
end

 

 
Dodane : 23/01/2023 9:49 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

Hej

teraz widać że coś się dzieje 😀

reguła się loguje i uzyskuje token tyle widzę na szybko.

Wieczorem połączę się z domem i spróbuję przeanalizować co się dzieje i gdzie się zatrzymuje.

 

próbuję podejrzeć np

"https://emodul.eu/api/v1/users/" + user_id + "/modules/8277712ce8de8ec19d15b457d54/zones" i dostaje w wyniu 404 Not Found 
 
 
Dodane : 23/01/2023 5:22 pm
(@kamikac)
Wpisów: 226
Pomocny
 

Bardzo roztropnie zrobiłeś, że token nie znalazł się na forum 🙂

Przyznam sie, że użyłem go do przetestowania dalszej części skryptu (nie zrobiłem nic poza odczytem danych) i oto uzyskany w OH wynik:

{
   "zones":{
      "transaction_time":null,
      "elements":[
         
      ],
      "globalSchedules":{
         "time":null,
         "duringChange":null,
         "elements":[
            
         ]
      },
      "controllerParameters":null
   },
   "tiles":[
      {
         "id":2000,
         "parentId":0,
         "type":50,
         "menuId":0,
         "orderId":null,
         "visibility":true,
         "params":{
            "description":"Controller software version",
            "version":"1.3.0",
            "txtId":873,
            "iconId":50,
            "companyId":30,
            "controllerName":"ST-480",
            "mainControllerId":169709
         }
      },
      {
         "id":2011,
         "parentId":0,
         "type":40,
         "menuId":0,
         "orderId":2,
         "visibility":true,
         "params":{
            "description":"Text information",
            "statusId":563,
            "headerId":1039,
            "iconId":50,
            "options":[
               
            ]
         }
      },
      {
         "id":2050,
         "parentId":0,
         "type":6,
         "menuId":2060,
         "orderId":5,
         "visibility":true,
         "params":{
            "description":"Universal status with widgets",
            "statusId":1,
            "iconId":106,
            "widget1":{
               "txtId":760,
               "value":0,
               "unit":6,
               "type":0,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            },
            "widget2":{
               "txtId":774,
               "value":508,
               "unit":7,
               "type":9,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            }
         }
      },
      {
         "id":2051,
         "parentId":0,
         "type":6,
         "menuId":2061,
         "orderId":8,
         "visibility":true,
         "params":{
            "description":"Universal status with widgets",
            "statusId":1,
            "iconId":105,
            "widget1":{
               "txtId":760,
               "value":0,
               "unit":6,
               "type":0,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            },
            "widget2":{
               "txtId":1041,
               "value":614,
               "unit":7,
               "type":9,
               "params":[
                  0,
                  0,
                  0,
                  0,
                  0
               ]
            }
         }
      },
      {
         "id":2053,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":3,
         "visibility":true,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":true,
            "txtId":795,
            "value":12,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":2054,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":4,
         "visibility":true,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":true,
            "txtId":1043,
            "value":200,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":2055,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":12,
         "visibility":false,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":false,
            "txtId":196,
            "value":-2030,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":2056,
         "parentId":0,
         "type":1,
         "menuId":0,
         "orderId":9,
         "visibility":true,
         "params":{
            "description":"Temperature sensor",
            "workingStatus":true,
            "txtId":1040,
            "value":375,
            "batteryLevel":null,
            "signalStrength":null
         }
      },
      {
         "id":4050,
         "parentId":0,
         "type":21,
         "menuId":0,
         "orderId":15,
         "visibility":false,
         "params":{
            "description":"Additional pump",
            "workingStatus":false,
            "pumpNumber":1,
            "txtId":922
         }
      },
      {
         "id":4051,
         "parentId":0,
         "type":21,
         "menuId":0,
         "orderId":17,
         "visibility":false,
         "params":{
            "description":"Additional pump",
            "workingStatus":false,
            "pumpNumber":2,
            "txtId":922
         }
      },
      {
         "id":4052,
         "parentId":0,
         "type":40,
         "menuId":2006,
         "orderId":18,
         "visibility":false,
         "params":{
            "description":"Text information",
            "statusId":473,
            "headerId":814,
            "iconId":3,
            "options":[
               
            ]
         }
      },
      {
         "id":4056,
         "parentId":0,
         "type":11,
         "menuId":0,
         "orderId":10,
         "visibility":true,
         "params":{
            "description":"Relay",
            "workingStatus":true,
            "txtId":571,
            "iconId":17
         }
      },
      {
         "id":4057,
         "parentId":0,
         "type":11,
         "menuId":0,
         "orderId":14,
         "visibility":false,
         "params":{
            "description":"Relay",
            "workingStatus":false,
            "txtId":573,
            "iconId":17
         }
      },
      {
         "id":4059,
         "parentId":0,
         "type":32,
         "menuId":0,
         "orderId":16,
         "visibility":false,
         "params":{
            "description":"Disinfection",
            "txtId":922,
            "percentage":0
         }
      },
      {
         "id":4060,
         "parentId":0,
         "type":31,
         "menuId":0,
         "orderId":1,
         "visibility":true,
         "params":{
            "description":"Fuel supply",
            "percentage":0,
            "hours":0
         }
      },
      {
         "id":4061,
         "parentId":0,
         "type":22,
         "menuId":0,
         "orderId":13,
         "visibility":true,
         "params":{
            "description":"Fan",
            "workingStatus":false,
            "fanNumber":0,
            "gear":0,
            "txtId":null
         }
      },
      {
         "id":4062,
         "parentId":0,
         "type":23,
         "menuId":2220,
         "orderId":6,
         "visibility":true,
         "params":{
            "description":"Built-in valve",
            "workingStatus":true,
            "valveNumber":0,
            "currentTemp":380,
            "returnTemp":370,
            "setTempCorrection":0,
            "openingPercentage":86,
            "valvePump":0,
            "boilerProtection":0,
            "returnProtection":1,
            "setTemp":41,
            "txtId":-1
         }
      },
      {
         "id":4063,
         "parentId":0,
         "type":24,
         "menuId":2270,
         "orderId":7,
         "visibility":true,
         "params":{
            "description":"Built-in valve",
            "workingStatus":true,
            "valveNumber":1,
            "currentTemp":390,
            "returnTemp":370,
            "setTempCorrection":0,
            "openingPercentage":78,
            "valvePump":0,
            "boilerProtection":0,
            "returnProtection":0,
            "setTemp":37,
            "txtId":-1
         }
      },
      {
         "id":4065,
         "parentId":0,
         "type":11,
         "menuId":0,
         "orderId":11,
         "visibility":true,
         "params":{
            "description":"Relay",
            "workingStatus":false,
            "txtId":550,
            "iconId":101
         }
      }
   ]
}

 

 
Dodane : 23/01/2023 10:07 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@kamikac 

😫 🤯 Jjjjjajaaajaaakk 

omg schock
 
Dodane : 23/01/2023 10:14 pm
Strona 1 / 2
Udostępnij: