Tak wygląda formatowanie jak się kodu nie umieści odpowiednio na forum.
Ale już się nauczyłem
Topic to publish
zigbee2mqtt/Termostat_P/set/schedule
Payload
{
"holidays": [{
"hour": 5,
"minute": 15,
"temperature": 21
}, {
"hour": 6,
"minute": 30,
"temperature": 22
}, {
"hour": 11,
"minute": 45,
"temperature": 20
}, {
"hour": 12,
"minute": 0,
"temperature": 20
}, {
"hour": 13,
"minute": 3,
"temperature": 20
}, {
"hour": 14,
"minute": 4,
"temperature": 20
}
]
}
{
"workdays": [{
"hour": 5,
"minute": 15,
"temperature": 21
}, {
"hour": 6,
"minute": 30,
"temperature": 17
}, {
"hour": 11,
"minute": 45,
"temperature": 17
}, {
"hour": 12,
"minute": 0,
"temperature": 17
}, {
"hour": 13,
"minute": 3,
"temperature": 17
}, {
"hour": 14,
"minute": 4,
"temperature": 17
}
]
}
Wsady Które napisałeś są do popularnej głowicy: moes
Moja (choć nazwa podobna) całkiem się różni zobacz: https://www.zigbee2mqtt.io/devices/TS0601_thermostat_1.html#tuya-ts0601_thermostat_1
Niby prosto bo na powyższej stronie jest opisane jak wsad powinien wyglądać:
{"undefined": {"monday_schedule": VALUE, "tuesday_schedule": VALUE, "wednesday_schedule": VALUE, "thursday_schedule": VALUE, "friday_schedule": VALUE, "saturday_schedule": VALUE, "sunday_schedule": VALUE}}
Tylko jak sfomułować to co się wpisuje zamiast VALUE, skoro na każdy dzień tygodnia osobno definiuje się po cztery punkty temperatury?
Taki format ?
"monday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
Sypie errorami
Jak wysyłam:
{"monday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "tuesday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "wednesday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "thursday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "friday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "saturday_schedule": " 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C ", "sunday_schedule": " 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C "}
Zwraca:
No converter available for ‘monday_schedule’ (" 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “)
Error 2022-11-23 23:08:03No converter available for ‘tuesday_schedule’ (” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “)
Error 2022-11-23 23:08:03No converter available for ‘wednesday_schedule’ (” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “)
Error 2022-11-23 23:08:03No converter available for ‘thursday_schedule’ (” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “)
Error 2022-11-23 23:08:03No converter available for ‘friday_schedule’ (” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “)
Error 2022-11-23 23:08:03No converter available for ‘saturday_schedule’ (” 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C “)
Error 2022-11-23 23:08:03No converter available for ‘sunday_schedule’ (” 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C ")
jeszcze próbowałem:
{"undefined": "monday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "tuesday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "wednesday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "thursday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "friday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "saturday_schedule": " 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C ", "sunday_schedule": " 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C "}
to dostałem:
Invalid message ‘null’, skipping…
najbardziej pasuję mi ta wersja
{"undefined": {"monday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "tuesday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "wednesday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "thursday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "friday_schedule": " 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C ", "saturday_schedule": " 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C ", "sunday_schedule": " 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C "}}
ale też zwraca błąd:
No converter available for ‘undefined’ ({“friday_schedule”:" 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “,“monday_schedule”:” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “,“saturday_schedule”:” 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C “,“sunday_schedule”:” 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C “,“thursday_schedule”:” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “,“tuesday_schedule”:” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C “,“wednesday_schedule”:” 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C "})
Lub ta:
{"undefined": {"monday_schedule": 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C , "tuesday_schedule": 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C , "wednesday_schedule": 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C , "thursday_schedule": 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C , "friday_schedule": 4h:0m 21°C, 8h:0m 19°C, 19h:0m 21°C, 22h:0m 19°C , "saturday_schedule": 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C , "sunday_schedule": 7h:45m 21°C, 11h:0m 19°C, 20h:0m 21°C, 22h:0m 19°C }}
Ale ta zwraca:
Invalid message ‘null’, skipping…
Heh pomysły mi się kończą
{
"battery": 100,
"child_lock": "UNLOCK",
"current_heating_setpoint": "15.0",
"friday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"heating": "OFF",
"linkquality": 73,
"local_temperature": "21.4",
"max_temperature": "35.0",
"min_temperature": "5.0",
"monday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"position": 0,
"preset": "auto",
"saturday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"sunday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"thursday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"tuesday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"wednesday_schedule": " 6h:0m 20°C, 12h:0m 15°C, 18h:0m 22°C, 22h:0m 15°C ",
"window": "CLOSED",
"window_detection": "OFF"
}
Topic
zigbee2mqtt/Termostat_P/set/schedule
Nie rozumiem
a zmienić topic na:
zigbee2mqtt/Termostat_P/set/schedule
po se
t daj schedule set/schedule
Wydaje mi się że to nie jest oprogramowane. Patrze właśnie na:
I nie ma w kluczu toZigbee metody do ustawiania tych danych. Ale IMHO patrząc na źródła da się to zhakować.
W mojej głowicy zmienia te parametry dla workdays i holidays
zigbee2mqtt/Termostat_P/set/schedule
{
"workdays": [{
"hour": 5,
"minute": 15,
"temperature": 21
}, {
"hour": 6,
"minute": 30,
"temperature": 17
}, {
"hour": 11,
"minute": 45,
"temperature": 17
}, {
"hour": 12,
"minute": 0,
"temperature": 17
}, {
"hour": 13,
"minute": 3,
"temperature": 17
}, {
"hour": 14,
"minute": 4,
"temperature": 17
}
]
}
Też mam głowice MOES i jest tak jak mówisz. Ale to inna głowica, która wg. kodu źródłowego nie wspiera (jeszcze) ustawiania tego parametru.
Właśnie przez bramkę tuya i na aplikacji to działa, a tu jest nawet na zigbee2mqtt w urządzeniu nie ma opcji ażeby wypełnić i wysłać:
dla porównania widok z głowicy moesa którą ma @artpc :
Czyli @quaker co myślisz? pozostaje czekać na aktualizację kodu?
Właśnie próbuje dopisać kod. Programistą strikte JS nie jestem (w innych językach sobie radzę), ale tutaj mam prawdziwy “mind-blow”, jak zobaczyłem kod. Nie sądziłem ze jest tyle typów głowic i tyle sposobów ich oprogramowania. Jak coś osiągnę to się pochwalę.
Na razie mam tyle. Pisane czysto teoretycznie
Jesteś wielki.
Co ja mam powiedzieć na ten kod, jak z programowania to tylko pralkę umiem.
Ale czy o tych samych głowcach mówimy w kodzie który piszesz jest cos na temat
haozee_thermostat…
A moje to dokładnie te co wcześniej wskazałeś:
TS0601 thermostat_1
modelID: 'TS0601', manufacturerName: '_TZE200_a4bpgplm'
modelID: 'TS0601', manufacturerName: '_TZE200_dv8abrrz'
To jest ta sama głowica - popatrz na zmiany w pliku devices/tuya.js
Quaker, widzę, żę ten PR jeszcze nie jest zmergowany. Potrzebujesz z nim jakiejś pomocy? Testowałeś go? Jeśli tak daj znać, mogę spróbować w weekend do tego usiąść, bo też mam tę głowicę i boli mnie brak możliwości ustawiania schedula.
Łatkę napisałem “na hura” bazując na istniejącym kodzie. Nic nie testowałem. Szczerze zatrzymałem się na etapie jak pokomplikowane jest Hass.io (dockery) i braku vima, aby te zmiany w locie przetestować na moim serwerku na RPI.
Patrzyłem na kod tuya.js i szczerze, przeraża mnie mnogość sposobów ustawianiu schedulera dla różnych głowic. I ile tam jest duplikacji kodu.
Przetestowałem i poprawiłem lokalnie Twój kod.
payload[0] trzeba zainicjować na numer dnia np. 1 + dpId - tuya.dataPoints.haozeeScheduleMonday; - reszta działa!
Trzeci bajt z każdej czwórki to sekundy, więc warość 0 może zostać.
Przykładowy format: {“monday_schedule”: “06:10/19 12:0/15 18:0/22 22:00/15”}
Oświećcie mnie Panowie.
Czy mogę tą konfiguracje sobie lokalnie gdzieś zmodyfikować?
Żeby u mnie zadziałało?
Witam,
dopiero zaczynam “przygodę” z MQTT i próbuję ogarnąć jak to się obsługuje. I w związku z tym czy może ktoś podesłać link lub jakiś tutorial dla totalnego laika, jak i gdzie wpisywać komendy (po części znalazłem że można użyć opcji konfiguruje w brokerze MQTT) jak i czym czytać, oraz czy istnieje jakiś zapis popularnych komend ?