supla-device na Linux
Super, zrobiłem, działa. Czy jest możliwe aby do kanału "ThermHygroMeterParsed" podstawiać dane z dwóch osobnych plików ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Nie ma takiej opcji.
Ale jeśli masz te dane w dwóch plikach, to można użyć parsera ze źródłem "komendowym" i wstawić komendę w stylu:
cat temp.txt && cat humi.txt
Te komendy dadzą na output zawartość obu plików. Potem w parserze ustawiasz z której lini ma czytać które dane i będzie działać.
Jedynie przy źródłe "komendowym" nie ma weryfikacji daty ostatniej modyfikacji plików, więc wartość kanału nie zmieni się na "---" przy starym pliku.
Widzimy się na Supla Offline Party vol. 2
Mam małą zagwostkę , kanał się dodał ale danych nie ma
Tak wygląda konfiguracja
Gdzie jest problem ?
Tak wygląda konfiguracja
Kod: Zaznacz cały
- type: ThermHygroMeterParsed
name: th8
source:
type: Cmd
command: cat /home/dariusz/Sainlogic/indoortempf.txt && cat /home/dariusz/Sainlogic/indoorhumidity.txt
parser:
type: Simple
# temperature is read from first line of txt file
temperature: 0
# humidity is read from second line of txt file
humidity: 1
multiplier_temp: 1
multiplier_humi: 1
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Wstaw całą komendę w " ".shimano73 pisze: ↑śr sty 11, 2023 9:46 am Mam małą zagwostkę , kanał się dodał ale danych nie ma
Tak wygląda konfiguracjaGdzie jest problem ?Kod: Zaznacz cały
- type: ThermHygroMeterParsed name: th8 source: type: Cmd command: cat /home/dariusz/Sainlogic/indoortempf.txt && cat /home/dariusz/Sainlogic/indoorhumidity.txt parser: type: Simple # temperature is read from first line of txt file temperature: 0 # humidity is read from second line of txt file humidity: 1 multiplier_temp: 1 multiplier_humi: 1
Jeśli nie pomoże to włącz sobie debugowe logi i zobacz co się pojawia na konsoli.
Widzimy się na Supla Offline Party vol. 2
możesz pominąć && cat
i zamiast
użyć
i zamiast
Kod: Zaznacz cały
command: "cat /home/dariusz/Sainlogic/indoortempf.txt && cat /home/dariusz/Sainlogic/indoorhumidity.txt"
Kod: Zaznacz cały
command: "cat /home/dariusz/Sainlogic/indoortempf.txt /home/dariusz/Sainlogic/indoorhumidity.txt"
Widzimy się na Supla Offline Party Season 2
Na razie bez powodzenia, odnoszę wrażenie iż ta komenda cat po połączeniu plików tworzy jeden wiersz
Po wykonaniu
otrzymałem 20.647 gdzie temp= 20.6 a humi =47
Po wykonaniu
Kod: Zaznacz cały
cat /home/dariusz/Sainlogic/indoortempf.txt /home/dariusz/Sainlogic/indoorhumidity.txt > /home/dariusz/Sainlogic/temp_humi.txt
otrzymałem 20.647 gdzie temp= 20.6 a humi =47
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Kod: Zaznacz cały
$ cat test1 test2
test1
test2
W twoich plikach nie ma znaku kończ linii, dlatego.
Widzimy się na Supla Offline Party Season 2
Bez znaku końca linii:
Ze znakiem końca linii:
Rozwiązanie zaproponowane przez @klew
Kod: Zaznacz cały
$ echo -n 20.6 > test1; echo -n 47 > test2; cat test1 test2
20.647
Kod: Zaznacz cały
$ echo 20.6 > test1; echo 47 > test2; cat test1 test2
20.6
47
Kod: Zaznacz cały
$ echo -n 20.6 > test1; echo -n 47 > test2; echo > nl; cat test1 nl test2
20.6
47
Widzimy się na Supla Offline Party Season 2
Te moje pliki z wartościami są tworzone w pliku PHP który sam napisałem.
Tak wyglada część odpowiedzialna za zapis do pliku
Jak dopisać znak konca lini do tego pliku ?
EDIT: Ogarnięte , dzięki za wskazówki
Tak wyglada część odpowiedzialna za zapis do pliku
Kod: Zaznacz cały
$new_value = round( (5.0 / 9 * (floatval($value) - 32 )), 1);
$fp = fopen($path."indoortempf.txt", "w");
fwrite($fp,$new_value);
fclose($fp);
break;
EDIT: Ogarnięte , dzięki za wskazówki
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024