sd4linux - KPOP i KLOP

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

Post

Kanały KPOP i KLOP dodajemy standardowo do pliku konfiguracyjnego yaml analogicznie jak każdy inny kanał.

GeneralPurposeMeasurementParsed (KPOP) oraz GeneralPurposeMeterParsed (KLOP)

Parametr obowiązkowy:
value - określa klucz/indeks, z którego pobierane są dane z parsera. Opcjonalne parametry:

multiplier - określa mnożnik dla pobranej wartości (możesz wprowadzić dowolną liczbę zmiennoprzecinkową).
default_value_multiplier - określa domyślny mnożnik dla wartości (możesz wprowadzić dowolną liczbę zmiennoprzecinkową).
default_value_divider - określa domyślny dzielnik dla wartości (możesz wprowadzić dowolną liczbę zmiennoprzecinkową).
default_value_added - określa domyślną dodatkową wartość (możesz wprowadzić dowolną liczbę zmiennoprzecinkową).
default_value_precision - określa domyślną precyzję (liczbę cyfr po przecinku) - dozwolone wartości: 0, 1, 2, 3, 4.
default_unit_before_value - określa jednostkę wyświetlaną przed wartością (możesz wprowadzić dowolny ciąg znaków o długości do 14 bajtów).
default_unit_after_value - określa jednostkę wyświetlaną po wartości (możesz wprowadzić dowolny ciąg znaków o długości do 14 bajtów).

Opis w readme jest tutaj:
https://github.com/SUPLA/supla-device/t ... mentparsed

Przykład z użyciem KPOP dla pomiarów stężenia PM1, PM2.5, PM10 przy integracji z airly:
https://github.com/SUPLA/supla-device/b ... ample.yaml

Niedługo pojawi się też możliwość wyboru innej domyślnej ikony (z zestawu ikon dostępnych na Cloud) oraz możliwość ustawienia początkowej nazwy kanału - dam znać jak to będzie dodane.
User avatar
shimano73
Posts: 2109
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

Krzychu, proszę o pomoc w ustawieniu tego kanału , twój przykład jest z json , a jak z pobieraniem danych z pliku txt
Teraz mam tak , ale to nie tak, bo nie działa

Code: Select all


  - type: GeneralPurposeMeasurementParsed # Index UV
    name: Index_uv
    default_value_precision: 0
    parser:
      name: parser_1
      type: Simple
      refresh_time_ms: 200
    value: /home/wyse/Sainlogic/uv.txt


EDIT: poprawiłem na tak:

Code: Select all

  - type: GeneralPurposeMeasurementParsed # Index UV
    name: Index_uv
    default_value_precision: 0
    value: 1
    source:
      type: File
      file: /home/wyse/Sainlogic/uv.txt
    parser:
      type: Simple
      refresh_time_ms: 200

kanał się dodał ale nie pokazuje wartości z pliku tylko kreski

EDIT 2:

Code: Select all

mar 14 22:28:49 wyse supla-device-linux[2040]: DEBUG[1710451729.202825] File: file "/home/wyse/Sainlogic/uv.txt" is too old
plik jest odświeżany co 1min
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
myxhir
Posts: 424
Joined: Thu Jan 07, 2021 12:16 pm
Location: Skórzewo, Poznań

Post

shimano73 wrote: Thu Mar 14, 2024 8:44 pm Krzychu, proszę o pomoc w ustawieniu tego kanału , twój przykład jest z json , a jak z pobieraniem danych z pliku txt
Teraz mam tak , ale to nie tak, bo nie działa

Code: Select all


  - type: GeneralPurposeMeasurementParsed # Index UV
    name: Index_uv
    default_value_precision: 0
    parser:
      name: parser_1
      type: Simple
      refresh_time_ms: 200
    value: /home/wyse/Sainlogic/uv.txt


EDIT: poprawiłem na tak:

Code: Select all

  - type: GeneralPurposeMeasurementParsed # Index UV
    name: Index_uv
    default_value_precision: 0
    value: 1
    source:
      type: File
      file: /home/wyse/Sainlogic/uv.txt
    parser:
      type: Simple
      refresh_time_ms: 200

kanał się dodał ale nie pokazuje wartości z pliku tylko kreski

EDIT 2:

Code: Select all

mar 14 22:28:49 wyse supla-device-linux[2040]: DEBUG[1710451729.202825] File: file "/home/wyse/Sainlogic/uv.txt" is too old
plik jest odświeżany co 1min
Poniżej moj przykład KPOP ktory pobiera dane z pliku txt, może pomoże :). Wyglada na to jakbyś musiał mieć ustawione expiration ktorego nie masz na wartosc przynajmniej +10 sek po tym jak sie kanal odswieza taka moja sugestia

Code: Select all

#PM2.5
  - type: GeneralPurposeMeasurementParsed
    name: PM2.5
    default_unit_after_value: "%"
    default_value_precision: 1
    value: 0
    source:
      type: File
      file: "/home/pi/Weather/syngeos-air-pm25.txt"
      expiration_time_sec: 380
    parser:
      type: Simple
      refresh_time_ms: 5000
User avatar
klew
Posts: 11239
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

shimano73 wrote: Thu Mar 14, 2024 8:44 pm

Code: Select all

  - type: GeneralPurposeMeasurementParsed # Index UV
    name: Index_uv
    default_value_precision: 0
    value: 1
    source:
      type: File
      file: /home/wyse/Sainlogic/uv.txt
    parser:
      type: Simple
      refresh_time_ms: 200
plik jest odświeżany co 1min
"value: 1" oznacza, że program będzie szukać wartości w drugiej linijice pliku. Jeśli masz tam tylko jedną linię z pomiarem, to użyj "value: 0"
User avatar
shimano73
Posts: 2109
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

Ok, zrobione , działa. Dodałem

Code: Select all

expiration_time_sec: 70
dla 60 sekundowego odświeżania pliku
ustawiłem

Code: Select all

value : 0

W jaki sposób najszybciej resetować supla-device aby zaciągał nowe dane z pliku yaml ? W ja zwykle restartuję cały system a to chwilę trwa dodatkowo komunikuję się z moim wyse po ssh.
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
klew
Posts: 11239
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

shimano73 wrote: Sat Mar 16, 2024 5:50 pm Ok, zrobione , działa. Dodałem

Code: Select all

expiration_time_sec: 70
dla 60 sekundowego odświeżania pliku
ustawiłem

Code: Select all

value : 0

W jaki sposób najszybciej resetować supla-device aby zaciągał nowe dane z pliku yaml ? W ja zwykle restartuję cały system a to chwilę trwa dodatkowo komunikuję się z moim wyse po ssh.
A jak masz postawiony serwis?
Ja używam: sudo service supla-device-moja-nazwa restart

Ale konkretne polecenie zależy od tego czym uruchamiasz serwisy
User avatar
shimano73
Posts: 2109
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Post

OK, kolejne pytanie jak przypisać nazwę do kanału , próbowałem tak :

Code: Select all

  - type: GeneralPurposeMeasurementParsed # Index UV
    name: Index_uv
    setInitialCaption: "Index UV"
    default_value_precision: 0
    value: 0
    source:
      type: File
      file: /home/wyse/Sainlogic/uv.txt
      expiration_time_sec: 70
    parser:
      type: Simple
      refresh_time_ms: 200

ale nie działa :(

edit : już znalazłem , ma byc

Code: Select all

initia_caption: "Index UV"
teraz działa
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)”