Pytania techniczne dotyczące kodu [bramka ZigBee]

Moderator: vajera

User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

vajera wrote: Thu Apr 10, 2025 8:52 pm Czyli w przypadku Supla::Sensor:ElectricityMeter te 3 pierwsze wartości należy zignorować?
Moc można pominąć (możesz się tylko upewnić, że tam jest suma).
Natomiast przy energii można sprawdzić, czy tam nie ma np. bilansu wektorowego - będzie to widać po tym, że łączne wartości pobranej i oddanej energii będą nieco mniejsze niż sumy 3 faz. Natomiast różnia miedzy pobraną a oddaną powinna być nadal taka sama.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

A pomożesz jeszcze z tym:

Code: Select all

setHvacFlagHeating
- ustawienie na true nie daje tego efektu czerwonych strzałek grzania w widoku termostatu :(
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

vajera wrote: Thu Apr 10, 2025 9:17 pm A pomożesz jeszcze z tym:

Code: Select all

setHvacFlagHeating
- ustawienie na true nie daje tego efektu czerwonych strzałek grzania w widoku termostatu :(
To jest metoda z klasy Channel. Klasa HVAC jej używa, aby stan ustawić.Więc jak ustawisz po swojemu, to HVAC to przestawia na "prawidłowy" stan :P

Wrzuciłem przed chwilą do biblioteki klasę RemoteOutputInterface.
Ją ustaw jako output dla HVAC i na niej ustawiaj wartość odczytaną z głowicy (metodą setOutputValueFromRemote() ).
W konstruktorze podaj true (dla on/off) lub false (dla 0-100%).
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

klew wrote: Fri Apr 11, 2025 7:52 am
vajera wrote: Thu Apr 10, 2025 9:17 pm A pomożesz jeszcze z tym:

Code: Select all

setHvacFlagHeating
- ustawienie na true nie daje tego efektu czerwonych strzałek grzania w widoku termostatu :(
To jest metoda z klasy Channel. Klasa HVAC jej używa, aby stan ustawić.Więc jak ustawisz po swojemu, to HVAC to przestawia na "prawidłowy" stan :P

Wrzuciłem przed chwilą do biblioteki klasę RemoteOutputInterface.
Ją ustaw jako output dla HVAC i na niej ustawiaj wartość odczytaną z głowicy (metodą setOutputValueFromRemote() ).
W konstruktorze podaj true (dla on/off) lub false (dla 0-100%).
Dzięki! Przetestowane i działa - są strzałki gdy głowica grzeje.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

@klew Krótkie pytanie - gdybym potrzebował custom actions/Events, to jak to najlepiej pożenić z listą enum w Supla? Czy przyjąć np. CUSTOM_START 0x4000 i założyć, że Supla do 16 tysięcy nigdy nie dojdzie? 😉
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

vajera wrote: Mon Apr 14, 2025 10:07 am @klew Krótkie pytanie - gdybym potrzebował custom actions/Events, to jak to najlepiej pożenić z listą enum w Supla? Czy przyjąć np. CUSTOM_START 0x4000 i założyć, że Supla do 16 tysięcy nigdy nie dojdzie? 😉
Nie wiem o co pytasz
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

klew wrote: Mon Apr 14, 2025 11:32 am
vajera wrote: Mon Apr 14, 2025 10:07 am @klew Krótkie pytanie - gdybym potrzebował custom actions/Events, to jak to najlepiej pożenić z listą enum w Supla? Czy przyjąć np. CUSTOM_START 0x4000 i założyć, że Supla do 16 tysięcy nigdy nie dojdzie? 😉
Nie wiem o co pytasz
Actions i events masz jako enum, więc zastanawiałem się jak najlepiej rozwiązać własne żeby w przyszłości nie wejść w konflikt z kodem SuplaDevice.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

vajera wrote: Mon Apr 14, 2025 2:05 pm
klew wrote: Mon Apr 14, 2025 11:32 am
vajera wrote: Mon Apr 14, 2025 10:07 am @klew Krótkie pytanie - gdybym potrzebował custom actions/Events, to jak to najlepiej pożenić z listą enum w Supla? Czy przyjąć np. CUSTOM_START 0x4000 i założyć, że Supla do 16 tysięcy nigdy nie dojdzie? 😉
Nie wiem o co pytasz
Actions i events masz jako enum, więc zastanawiałem się jak najlepiej rozwiązać własne żeby w przyszłości nie wejść w konflikt z kodem SuplaDevice.
Pewnych wartości raczej nigdy nie osiągniemy ;)
Ale mogę tam też dorzucić ostatni element z określoną nazwą.
Jak będę dodawał nowe, to ten max będzie zmieniał wartość. Gdy użyjesz go jako bazy do wyznaczania swoich id, to nigdy nie powinno być konfliktu, o ile nie przekroczymy 65535
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

@klew - pytanie dotyczące termostatu, mam taki kod:

Code: Select all

auto Supla_Z2S_TRVInterface = new Supla::Control::Z2S_TRVInterface(gateway, device, trv_commands_set);

  auto Supla_Z2S_HvacBase = new Supla::Control::HvacBaseEE(Supla_Z2S_TRVInterface);
            
  Supla_Z2S_HvacBase->getChannel()->setChannelNumber(z2s_devices_table[channel_number_slot].Supla_channel);

  if (strlen(z2s_devices_table[channel_number_slot].Supla_channel_name) > 0) 
    Supla_Z2S_HvacBase->setInitialCaption(z2s_devices_table[channel_number_slot].Supla_channel_name);
  
  if (z2s_devices_table[channel_number_slot].Supla_channel_func !=0) 
    Supla_Z2S_HvacBase->setDefaultFunction(z2s_devices_table[channel_number_slot].Supla_channel_func);

  Supla_Z2S_HvacBase->allowWrapAroundTemperatureSetpoints();
  
  Supla_Z2S_HvacBase->setPrimaryOutputEE(Supla_Z2S_TRVInterface);
  Supla_Z2S_TRVInterface->setTRVHvac(Supla_Z2S_HvacBase);

  Supla_Z2S_HvacBase->setTemperatureRoomMin(hvac_room_temperature_min);
  Supla_Z2S_HvacBase->setTemperatureRoomMax(3000); //hvac_room_temperature_max);
  
  Supla_Z2S_TRVInterface->enableExternalSensorDetection(true, trv_external_sensor_mode, z2s_devices_table[channel_number_slot].Supla_secondary_channel);
, ale pomimo tej linii:

Code: Select all

Supla_Z2S_HvacBase->setTemperatureRoomMax(3000); //hvac_room_temperature_max);
termostat nadal wyświetle 40 st. C?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Jeszcze jedno:

Code: Select all

Supla_Z2S_HvacBase->setButtonTemperatureStep(50);
Czy to nie powinno spowodować, że (-) i (+) w aplikacji będą zmieniać setpoint o 0,5 st. C?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277

Return to “Bramka ZigBee”