supla-device na Linux

Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

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 :)
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

shimano73 pisze: śr sty 11, 2023 8:42 am Super, zrobiłem, działa. Czy jest możliwe aby do kanału "ThermHygroMeterParsed" podstawiać dane z dwóch osobnych plików ?
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 :!:
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Mam małą zagwostkę ;) , kanał się dodał ale danych nie ma :(
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
Gdzie jest problem ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

shimano73 pisze: śr sty 11, 2023 9:46 am Mam małą zagwostkę ;) , kanał się dodał ale danych nie ma :(
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
Gdzie jest problem ?
Wstaw całą komendę w " ".
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 :!:
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

możesz pominąć && cat
i zamiast

Kod: Zaznacz cały

command: "cat /home/dariusz/Sainlogic/indoortempf.txt && cat /home/dariusz/Sainlogic/indoorhumidity.txt"
użyć

Kod: Zaznacz cały

command: "cat /home/dariusz/Sainlogic/indoortempf.txt /home/dariusz/Sainlogic/indoorhumidity.txt"
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Na razie bez powodzenia, odnoszę wrażenie iż ta komenda cat po połączeniu plików tworzy jeden wiersz
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 :)
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

Kod: Zaznacz cały

$ cat test1 test2
test1
test2
u mnie zwraca w dwóch linijkach...

W twoich plikach nie ma znaku kończ linii, dlatego.
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

U mnie też daje w osobne linie.
Możesz dodać plik "new_line.txt" i wstaw tam pustą linię (enter).
Następnie

cat 1.txt new_line.txt 2.txt
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

Bez znaku końca linii:

Kod: Zaznacz cały

$ echo -n 20.6 > test1; echo -n 47 > test2; cat test1 test2
20.647
Ze znakiem końca linii:

Kod: Zaznacz cały

$ echo 20.6 > test1; echo 47 > test2; cat test1 test2
20.6
47
Rozwiązanie zaproponowane przez @klew

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 :D

Obrazek
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Te moje pliki z wartościami są tworzone w pliku PHP który sam napisałem.
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; 

Jak dopisać znak konca lini do tego pliku ?

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 :)
ODPOWIEDZ

Wróć do „supla-dev”