supla-device na Linux

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

shimano73 pisze: śr paź 12, 2022 10:31 am Usunąłem różne inne kopie w innych lokalizacjach , zostawiłem tylko w folderze z którego uruchamiam program.
Zmieniając w nim nazwę na "name: Wyse SUPLA " pojawia sie ona w logach
Sprawdziłem jeszcze raz u siebie, nawet wrzuciłem całego Twojego configa i u mnie ładuje się poprawnie.

Spróbuj wstawić np:

Kod: Zaznacz cały

security_level: test
W logu powinien pojawić się błąd w tym stylu:

Kod: Zaznacz cały

DEBUG[1665571416.301441] Main storage not configured
ERR[1665571416.301513] Config file YAML error: yaml-cpp: error at line 8, column 17: bad conversion
DEBUG[1665571416.301527] Security level: 0
Jeśli się nie pojawi, to znaczy, że z jakiegoś powodu nie próbuje u Ciebie tego czytać.
Jaka architektura procka jest na tym Dellu? 32/64 bity?
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:

Niestety nie pojawia się ten bład , nadal jest

Kod: Zaznacz cały

DEBUG[1665571852.519632] Main storage not configured
DEBUG[1665571852.519924] Security level: 0

Ten mój Dell Wyse dx0d z prockiem AMD G-T48E z arcitekturą 64bit

EDIT: Przeglądałem swoją pocztę i zauważyłem że ten dell jakimś cudem się zarejestrował ( o godz 12:42) co też widać na moim koncie ale cały czas jest offline i connection fail
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 paź 12, 2022 11:06 am Niestety nie pojawia się ten bład , nadal jest
Sprawdź proszę u siebie w źródłach, czy te metody są takie same:
https://github.com/SUPLA/supla-device/b ... g.cpp#L171
oraz:
https://github.com/SUPLA/supla-device/b ... pc.cpp#L85

Możesz też spróbować dodać w powyższych miejscach jakieś dodatkowe logi:

Kod: Zaznacz cały

SUPLA_LOG_INFO("  *** TEST 1");
itd.

Z Twoich logów wygląda jakby ta metoda getUInt8 się nie odpalała. Ona jakiś czas temu nie była zaimplementowana - dodawałem ją aby dało się ten security_level ustawić na Linuxie, ale w wersji 22.10.03 ona już jest.
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:

klew pisze: czw paź 13, 2022 10:27 am
shimano73 pisze: śr paź 12, 2022 11:06 am Niestety nie pojawia się ten bład , nadal jest
Sprawdź proszę u siebie w źródłach, czy te metody są takie same:
https://github.com/SUPLA/supla-device/b ... g.cpp#L171
oraz:
https://github.com/SUPLA/supla-device/b ... pc.cpp#L85

Możesz też spróbować dodać w powyższych miejscach jakieś dodatkowe logi:

Kod: Zaznacz cały

SUPLA_LOG_INFO("  *** TEST 1");
itd.

Z Twoich logów wygląda jakby ta metoda getUInt8 się nie odpalała. Ona jakiś czas temu nie była zaimplementowana - dodawałem ją aby dało się ten security_level ustawić na Linuxie, ale w wersji 22.10.03 ona już jest.
Wygląda na to że te metody sa identyczne , próbowałem dodać te logi ale czy muszę coś kompilować czy wystarczy że odpalę program na nowo .
Bo jesli nic nie musze kompilować to po wstawieniu

Kod: Zaznacz cały

SUPLA_LOG_INFO("  *** TEST 1");
czy

Kod: Zaznacz cały

SUPLA_LOG_DEBUG("  *** TEST 1");
nic się nie wyświetla w terminalu,
Na próbę wstawiłem równiez
[code[
securityLevel = 2;
[/code]
ale w terminalu nadal wyświetla sie 0


EDIT : OK, zrobiłem "make -j10" , skompilowało sie z tym "securityLevel = 2;" i po uruchomieniu udało sie połączyć z serwerem supli i urządzenie się zarejestrowało

EDIT: Zmieniłem na

Kod: Zaznacz cały

      cfg->getUInt8("security_level", &securityLevel);
      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
      if (securityLevel > 2) {
        securityLevel = 0;
    

i w terminalu wyświetla sie "Security level: 50" przy security_level: 2 ustawionym w pliku supla-device.yaml
a "Security level: 49" przy security_level: 1
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
przygod
Posty: 97
Rejestracja: śr lip 17, 2019 9:31 am

Melduję że na RPI też działa (oczywiście po poprawce na securityLevel = 2 opisanej wyżej w wątku).
Dzięki!
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

shimano73 pisze: czw paź 13, 2022 2:35 pm EDIT: Zmieniłem na

Kod: Zaznacz cały

      cfg->getUInt8("security_level", &securityLevel);
      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
      if (securityLevel > 2) {
        securityLevel = 0;
    

i w terminalu wyświetla sie "Security level: 50" przy security_level: 2 ustawionym w pliku supla-device.yaml
a "Security level: 49" przy security_level: 1
Spróbuj:

Kod: Zaznacz cały

      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
      cfg->getUInt8("security_level", &securityLevel);
      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
 


Oraz dodaj jakieś printy do tej metody getUInt8 w linux_yaml_config.cpp

Ewentualnie:

Kod: Zaznacz cały

make clean
make -j10

;)
Widzimy się na Supla Offline Party vol. 2 :!:
przygod
Posty: 97
Rejestracja: śr lip 17, 2019 9:31 am

Czy kanał VirtualRelay już jest obsługiwany i czy mógłbym użyć do uruchamiania skryptów? Jeśli tak, to może jakaś podpowiedź na temat gdzie poczytać na definicji tego kanału?
Przepraszam jeśli TBD zinterpretowałem jako To Be Described zamiast To Be Designed :)
Ostatnio zmieniony sob paź 15, 2022 6:56 am przez przygod, łącznie zmieniany 1 raz.
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

klew pisze: pt paź 14, 2022 11:49 am
shimano73 pisze: czw paź 13, 2022 2:35 pm EDIT: Zmieniłem na

Kod: Zaznacz cały

      cfg->getUInt8("security_level", &securityLevel);
      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
      if (securityLevel > 2) {
        securityLevel = 0;
    

i w terminalu wyświetla sie "Security level: 50" przy security_level: 2 ustawionym w pliku supla-device.yaml
a "Security level: 49" przy security_level: 1
Spróbuj:

Kod: Zaznacz cały

      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
      cfg->getUInt8("security_level", &securityLevel);
      SUPLA_LOG_DEBUG("Security level: %d", securityLevel);
 


Oraz dodaj jakieś printy do tej metody getUInt8 w linux_yaml_config.cpp

Ewentualnie:

Kod: Zaznacz cały

make clean
make -j10

;)
próba wykonana

Kod: Zaznacz cały

EBUG[1665789099.14401] Supla - starting initialization
DEBUG[1665789099.14496] Main storage not configured
DEBUG[1665789099.14689] SecurityLevel before : 0
DEBUG[1665789099.14788] Security level after: 50
DEBUG[1665789099.14831]   *** TEST 1
to co zauważyłem tp metoda getuint8 ze znaku '2' robi jej kod ascii - '50'

EDIT:
Dokonałem małej modyfikacji , zmieniłem

Kod: Zaznacz cały

*result =config[key].as<uint8_t>();
na

Kod: Zaznacz cały

*result =config[key].as<int>();
i teraz konwersja przebiega poprawnie, przynajmniej w zakresie liczb dodatnich :)
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: pt paź 14, 2022 11:15 pm

i teraz konwersja przebiega poprawnie, przynajmniej w zakresie liczb dodatnich :)
I zagadka rozwiązana :)
Pewnie na Twojej platformie uint8_t jest zdefiniowany jako char a biblioteka od yaml stwierdziła że chcemy odczytać znak ascii.
Dzięki! Poprawię to w bibliotece
Widzimy się na Supla Offline Party vol. 2 :!:
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

Udało mi się uruchomić, jednak nie ma informacji z Froniusa:

Kod: Zaznacz cały

DEBUG[1667041669.194548] Fronius connecting 1
INFO[1667041669.194614] Establishing NOT encrypted connection with: xxx.xxx.xxx.xxx (port: 80)
DEBUG[1667041669.238258] Reading data from Fronius: 666
DEBUG[1667041669.254868] Fronius fetch completed
W pliku konfiguracyjnym mam tylko wirtualny przekaźnik i tego froniusa. Przekaźnik działa OK.
ODPOWIEDZ

Wróć do „supla-dev”