Ostatnio dodałem do serwera lokalnego nowy srw-01 i w aplikacji na androida pojawiła się ikonka litera i w kółku, fajny fjuczer pokazuję info o nr. kanału, IP, MAC, RSSI, siła sygnału, czas pracy, połączenia jednak tylko w tym nowo dodanym reszta 7szt. już nie.
Supla serwer 2.3.27
Ikona "i" info
Własny serwer czy publiczny ? Jak publiczny to musisz zaczekać ~30 min po aktualizacji.
Jak własny to trzeba odpalić polecenie sql:
Jak własny to trzeba odpalić polecenie sql:
Kod: Zaznacz cały
UPDATE supla_dev_channel LEFT JOIN ( SELECT d.id FROM supla_iodevice d LEFT JOIN supla_dev_channel c ON c.iodevice_id = d.id WHERE (d.name LIKE 'ZAMEL%' OR d.name LIKE 'NICE%') AND version_to_int(d.software_version) >= 2007024 AND IFNULL((c.flags & 0x10000),0) = 0 ) x ON x.id = iodevice_id SET flags = IFNULL(flags,0) | 0x10000 WHERE x.id IS NOT NULL;
A co to ma do rzeczy?
Wejdź do katalogu w którym masz dockerową Suplę a następnie uruchom bardziej rozszerzone polecenie:
Kod: Zaznacz cały
source ./.env; docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "UPDATE supla_dev_channel LEFT JOIN ( SELECT d.id FROM supla_iodevice d LEFT JOIN supla_dev_channel c ON c.iodevice_id = d.id WHERE (d.name LIKE 'ZAMEL%' OR d.name LIKE 'NICE%') AND version_to_int(d.software_version) >= 2007024 AND IFNULL((c.flags & 0x10000),0) = 0 ) x ON x.id = iodevice_id SET flags = IFNULL(flags,0) | 0x10000 WHERE x.id IS NOT NULL;"
Widzimy się na Supla Offline Party Season 2
Zajmie bo prócz tego że mam suplę na dockerze nie operowałem wewnątrz instancji, ale widzę że to łatwe. W katalogu supla-docker:
Kod: Zaznacz cały
/supla-docker# source ./.env; docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "UPDATE supla_dev_channel LEFT JOIN ( SELECT d.id FROM supla_iodevice d LEFT JOIN supla_dev_channel c ON c.iodevice_id = d.id WHERE (d.name LIKE 'ZAMEL%' OR d.name LIKE 'NICE%') AND version_to_int(d.software_version) >= 2007024 AND IFNULL((c.flags & 0x10000),0) = 0 ) x ON x.id = iodevice_id SET flags = IFNULL(flags,0) | 0x10000 WHERE x.id IS NOT NULL;"
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1305 (42000) at line 1: FUNCTION supla.version_to_int does not exist
Brakuje Ci jednej z funkcji. Jeśli wszystkie moduły mają wersję 2.7.24 to możesz uprościć to zapytanie:
Kod: Zaznacz cały
/supla-docker# source ./.env; docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "UPDATE supla_dev_channel LEFT JOIN ( SELECT d.id FROM supla_iodevice d LEFT JOIN supla_dev_channel c ON c.iodevice_id = d.id WHERE (d.name LIKE 'ZAMEL%' OR d.name LIKE 'NICE%') AND d.software_version = '2724' AND IFNULL((c.flags & 0x10000),0) = 0 ) x ON x.id = iodevice_id SET flags = IFNULL(flags,0) | 0x10000 WHERE x.id IS NOT NULL;"
Ta funkcja nie jest publicznie dostępna. Będzie Ci ją cieżko dodać z command line-a.
Pomyliłem się w powyższym przykładzie. Teraz powinno być ok.
Pomyliłem się w powyższym przykładzie. Teraz powinno być ok.
Kod: Zaznacz cały
/supla-docker# source ./.env; docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "UPDATE supla_dev_channel LEFT JOIN ( SELECT d.id FROM supla_iodevice d LEFT JOIN supla_dev_channel c ON c.iodevice_id = d.id WHERE (d.name LIKE 'ZAMEL%' OR d.name LIKE 'NICE%') AND d.software_version = '2.7.24' AND IFNULL((c.flags & 0x10000),0) = 0 ) x ON x.id = iodevice_id SET flags = IFNULL(flags,0) | 0x10000 WHERE x.id IS NOT NULL;"