supla-device na Linux

User avatar
shimano73
Posts: 2110
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

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 :)
User avatar
klew
Posts: 11318
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

shimano73 wrote: Wed Jan 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.
Supla: bo GPIO to dopiero początek.
User avatar
shimano73
Posts: 2110
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

Mam małą zagwostkę ;) , kanał się dodał ale danych nie ma :(
Tak wygląda konfiguracja

Code: Select all

  - 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 :)
User avatar
klew
Posts: 11318
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

shimano73 wrote: Wed Jan 11, 2023 9:46 am Mam małą zagwostkę ;) , kanał się dodał ale danych nie ma :(
Tak wygląda konfiguracja

Code: Select all

  - 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.
Supla: bo GPIO to dopiero początek.
User avatar
Goral64
Posts: 3191
Joined: Fri Dec 27, 2019 6:22 pm
Location: Żerniki Wrocławskie

Post

możesz pominąć && cat
i zamiast

Code: Select all

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

Code: Select all

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

Image
User avatar
shimano73
Posts: 2110
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

Na razie bez powodzenia, odnoszę wrażenie iż ta komenda cat po połączeniu plików tworzy jeden wiersz
Po wykonaniu

Code: Select all

 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 :)
User avatar
Goral64
Posts: 3191
Joined: Fri Dec 27, 2019 6:22 pm
Location: Żerniki Wrocławskie

Post

Code: Select all

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

Image
User avatar
klew
Posts: 11318
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

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
Supla: bo GPIO to dopiero początek.
User avatar
Goral64
Posts: 3191
Joined: Fri Dec 27, 2019 6:22 pm
Location: Żerniki Wrocławskie

Post

Bez znaku końca linii:

Code: Select all

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

Code: Select all

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

Code: Select all

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

Image
User avatar
shimano73
Posts: 2110
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

Te moje pliki z wartościami są tworzone w pliku PHP który sam napisałem.
Tak wyglada część odpowiedzialna za zapis do pliku

Code: Select all

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

Return to “Supla-device dla Linuxa (sd4linux)”