Mam pytanie jak stworzyć klase sensora Supla::Sensor::VirtualImpulseCounter.
Czemu ma to służyć. Za pomocą modułu radiowego CC1101 i kodów z GitHub zaczytuję id i wartość zużycia licznika wody. Oczywiście filtruje je tylko do mojego licznika. Czyli posiadam podawaną co kilkanaście sekund wartość zużycia wody
Powyższa klasa ma mi posłużyć do przekazania wartości do Supli.
Obecnie działa mi to w oparciu o czytnik 'ramek" w postaci dongla USB + Linux + supla-virtual-device. Chcialbym się pozbyć pracującego laptopa tylko do czytania i przekazywania wartości do Supli.
Jeśli ktoś ma jakiś pomysł jak to zrobić z góry dziękuje.
Dodam że poprzez sensor VirtualThermometer udaje się przekazywać wartość ale ten sensor służy do przekazywania aktualnej temperatury a ja potrzebuje do przekazywania wartości pomiaru - najlepiej wodomierza
Virtual Impulse Counter
-
[email protected]
- Posts: 1585
- Joined: Mon Feb 06, 2023 8:56 am
- Has thanked: 18 times
- Been thanked: 26 times
Siądę jutro do komputera to Ci napisze jak to zrobić inaczej, też walczę z licznikiem ale nie umiem dojść do ładu z ramką Apator 16-2 za to wiem jak to pokazywać w supli jako licznik
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Na branchu termostatu jest już taka klasa:
https://github.com/SUPLA/supla-device/b ... ounter.cpp
https://github.com/SUPLA/supla-device/b ... ounter.cpp
Najlepsze suple dla Twojego domu 
-
milanos
- Posts: 24
- Joined: Thu Sep 01, 2022 8:20 am
To jest impulse_counter.klew wrote: Tue Jul 25, 2023 5:57 pm Na branchu termostatu jest już taka klasa:
https://github.com/SUPLA/supla-device/b ... ounter.cpp
Używam tej klasy gdy stosuje liczenie impulsów z gazomierza poprzez kontaktron.
Nie bardzo ogarniam jak jej użyć aby jawnie przekazać stan pomiaru pozyskany poprzez CC1101 i https://github.com/maciekn/izar-wmbus-esp
Last edited by milanos on Wed Jul 26, 2023 5:55 am, edited 1 time in total.
-
milanos
- Posts: 24
- Joined: Thu Sep 01, 2022 8:20 am
Super, wielkie dzięki[email protected] wrote: Tue Jul 25, 2023 5:49 pm Siądę jutro do komputera to Ci napisze jak to zrobić inaczej, też walczę z licznikiem ale nie umiem dojść do ładu z ramką Apator 16-2 za to wiem jak to pokazywać w supli jako licznik
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Tak, to jest "impulse counter" - przecież o to pytałeśmilanos wrote: Wed Jul 26, 2023 5:50 am To jest impulse_counter. Nie bardzo ogarniam jak jej użyć aby jawnie przekazać stan pomiaru pozyskany z https://github.com/maciekn/izar-wmbus-esp poprzez CC1101
Jak masz instancję tej klasy, to wystarczy:
Code: Select all
licznik->setCounter(wartość);
Najlepsze suple dla Twojego domu 
-
milanos
- Posts: 24
- Joined: Thu Sep 01, 2022 8:20 am
Dzieki za info spróbuje tak zrobić i dam znać czy zadziałało.klew wrote: Wed Jul 26, 2023 5:54 amTak, to jest "impulse counter" - przecież o to pytałeśmilanos wrote: Wed Jul 26, 2023 5:50 am To jest impulse_counter. Nie bardzo ogarniam jak jej użyć aby jawnie przekazać stan pomiaru pozyskany z https://github.com/maciekn/izar-wmbus-esp poprzez CC1101
Jak masz instancję tej klasy, to wystarczy:Podobnie jak przy VirtualThermometer, tylko nazwa metody jest inna. Licznik impulsów działa też tylko na liczbach całkowitych, więc jeśli odczyt z licznika masz w liczbach zmiennoprzecinkowych, to musisz je przeliczać na całkowite, a precyzję (ilosć imp na jednostkę miary) konfigurujesz w Cloud)Code: Select all
licznik->setCounter(wartość);
-
[email protected]
- Posts: 1585
- Joined: Mon Feb 06, 2023 8:56 am
- Has thanked: 18 times
- Been thanked: 26 times
Code: Select all
class WaterMeter: public ChannelElement{
public:
WaterMeter(): lastReadTime(0){
channel.setType(SUPLA_CHANNELTYPE_IMPULSE_COUNTER);
channel.setDefault(SUPLA_CHANNELFNC_IC_WATER_METER);
channel.setNewValue(-1.0);
};
double getValue(){
return random(1,3);
}
void iterateAlways(){
if(lastReadTime+10000<millis()){
lastReadTime=millis();
++counter;
channel.setNewValue(counter);
}
}
protected:
uint64_t lastReadTime;
uint64_t counter =0;
};-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
