Witam,
Czy jest możliwe zliczanie ilości włączeń przekaźnika i prezentacja tych danych w supli?
Od razu mówię że przekaźnik uruchamia mi się losowo w zależności od warunków (temperatury) na kilka sekund.
W tym czasie zasila inne urządzenie. Chciałbym mieć informacje ile razy zostało to urządzenie uruchomione.
NodeMCU v3 - zliczanie włączeń przekaźnika
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Czy przekaźnik jest sterowany przez Suplę?
Jeśli tak, to relatywnie prosto można zaimplementować licznik impulsów podpięty pod włączanie przekaźnika. Tylko wtedy ten licznik będzie dostępny jako osobny kanał w aplikacji
Jeśli tak, to relatywnie prosto można zaimplementować licznik impulsów podpięty pod włączanie przekaźnika. Tylko wtedy ten licznik będzie dostępny jako osobny kanał w aplikacji
Najlepsze suple dla Twojego domu 
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
a ten kanał zlicza przyrostowi wartości po stronie clouda czy zapisuje te wartości w eepromie a później je wysyła do clouda??klew wrote: Fri Nov 22, 2019 8:51 am Czy przekaźnik jest sterowany przez Suplę?
Jeśli tak, to relatywnie prosto można zaimplementować licznik impulsów podpięty pod włączanie przekaźnika. Tylko wtedy ten licznik będzie dostępny jako osobny kanał w aplikacji
https://gui-generic-builder.supla.io/
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Licznik zapisuje w EEPROM. Dane są wysyłane cyklicznie do Cloud, ale licznik i tak musi je lokalnie pamiętać.krycha88 wrote: Fri Nov 22, 2019 10:31 am a ten kanał zlicza przyrostowi wartości po stronie clouda czy zapisuje te wartości w eepromie a później je wysyła do clouda??
Najlepsze suple dla Twojego domu 
-
alvaroboven
- Posts: 12
- Joined: Wed Nov 06, 2019 8:33 am
klew wrote: Fri Nov 22, 2019 8:51 am Czy przekaźnik jest sterowany przez Suplę?
Jeśli tak, to relatywnie prosto można zaimplementować licznik impulsów podpięty pod włączanie przekaźnika. Tylko wtedy ten licznik będzie dostępny jako osobny kanał w aplikacji
Jak to jest realizowane? Mam „esp8266” podłączony do mega arduino, gdzie mam resztę programowania. Następnie muszę wiedzieć, czy przekaźnik jest aktywowany, czy nie, aby wysłać swój status do arduino.
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Trzeba stworzyć licznik impulsów, który będzie zliczał ilość przełączeń przekaźnika. Przekaźnikiem sterujesz z tej samej aplikacji, więc wystarczy w tym samym miejscu gdzie jest przełączanie dodać zwiększenie countera w liczniku.alvaroboven wrote: Sat Nov 23, 2019 5:49 pmklew wrote: Fri Nov 22, 2019 8:51 am Czy przekaźnik jest sterowany przez Suplę?
Jeśli tak, to relatywnie prosto można zaimplementować licznik impulsów podpięty pod włączanie przekaźnika. Tylko wtedy ten licznik będzie dostępny jako osobny kanał w aplikacji
Jak to jest realizowane? Mam „esp8266” podłączony do mega arduino, gdzie mam resztę programowania. Następnie muszę wiedzieć, czy przekaźnik jest aktywowany, czy nie, aby wysłać swój status do arduino.
W aktualnym kodzie najprościej byłoby wpiąć się w metody "supla digital write" (można ustawić callback metodą setDigitalWriteFuncImpl - na forum jest kilka przykładów użycia tej metody do różnych zastosowań). Wtedy możesz tam wstawić metodę zwiększającą licznik np. przy zmianie wartości kanału przekaźnika na HIGH.
Najlepsze suple dla Twojego domu 
-
bigthomas
- Posts: 235
- Joined: Mon Aug 12, 2019 3:35 pm
Tak jest sterowany przez Suple, było by nawet lepiej gdyby był to osobny kanał.klew wrote: Fri Nov 22, 2019 8:51 am Czy przekaźnik jest sterowany przez Suplę?
Jeśli tak, to relatywnie prosto można zaimplementować licznik impulsów podpięty pod włączanie przekaźnika. Tylko wtedy ten licznik będzie dostępny jako osobny kanał w aplikacji
Możesz podrzucić kawałek kodu w jaki sposób to zrealizować ...?
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Tu jest przykład. Działa z moją wersją biblioteki z tej lokalizacji: https://github.com/klew/arduino/tree/developbigthomas wrote: Mon Nov 25, 2019 9:46 am
Tak jest sterowany przez Suple, było by nawet lepiej gdyby był to osobny kanał.
Możesz podrzucić kawałek kodu w jaki sposób to zrealizować ...?
Przykład na Arduino IDE dla ESP8266. Przeróbka na Arduino Mega to zmiana kilku linijek.
Zrobiłem to jeszcze prościej - popiąłem licznik bezpośrednio pod pin sterujący przekaźnikiem. Ważne aby "addImpulseCounter" było wywołane przed "addRelay", bo inaczej impulse counter nadpisze ustawienia pinu. Zlicza przejścia z low do high.
Code: Select all
/*
Copyright (C) AC SOFTWARE SP. Z O.O.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <SPI.h>
#include <SuplaDevice.h>
// ESP8266 based board:
#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifiInterface("ssid", "password");
void setup() {
Serial.begin(115200);
// Replace the falowing GUID
char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
// with GUID that you can retrieve from https://www.supla.org/arduino/get-guid
SuplaDevice.addImpulseCounter(D4, 0, true, false, 50);
SuplaDevice.addRelay(D4, false); // 44 - Pin number where the relay is connected
/*
* SuplaDevice Initialization.
* Server address, LocationID and LocationPassword are available at https://cloud.supla.org
* If you do not have an account, you can create it at https://cloud.supla.org/account/create
* SUPLA and SUPLA CLOUD are free of charge
*
*/
SuplaDevice.begin(GUID, // Global Unique Identifier
"svrX.supla.org", // SUPLA server address
0, // Location ID
""); // Location Password
}
void loop() {
SuplaDevice.iterate();
}
You do not have the required permissions to view the files attached to this post.
Najlepsze suple dla Twojego domu 
-
bigthomas
- Posts: 235
- Joined: Mon Aug 12, 2019 3:35 pm
Niestety z Twoją biblioteką mam błędy przy kompilacji (na poprzedniej bibliotece działało).
Niestety z Twoją biblioteką mam błędy przy kompilacji (na poprzedniej bibliotece działało).
Niestety z Twoją biblioteką mam błędy przy kompilacji (na poprzedniej bibliotece działało).
Code: Select all
Arduino:1.8.8 (Windows 7), Płytka:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"
UWAGA: biblioteka SuplaDevice działa na architekturze(/architekturach) (avr) i może nie być kompatybilna z obecną płytką która działa na architekturze(/architekturach) (esp8266).
C:\Arduino\Projekty\projekt12\projekt12.ino: In function 'void setup()':
projekt12:220:27: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive]
"xxxx"); // Hasło lokalizacji
^
In file included from C:\Arduino\Projekty\projekt12\projekt12.ino:5:0:
C:\Arduino\libraries\SuplaDevice/SuplaDevice.h:266:8: error: initializing argument 2 of 'bool SuplaDeviceClass::begin(char*, const char*, int, const char*, unsigned char)' [-fpermissive]
bool begin(char GUID[SUPLA_GUID_SIZE],
^
projekt12:220:27: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
"xxxx"); // Hasło lokalizacji
^
In file included from C:\Arduino\Projekty\projekt12\projekt12.ino:5:0:
C:\Arduino\libraries\SuplaDevice/SuplaDevice.h:266:8: error: initializing argument 3 of 'bool SuplaDeviceClass::begin(char*, const char*, int, const char*, unsigned char)' [-fpermissive]
bool begin(char GUID[SUPLA_GUID_SIZE],
^
projekt12:220:27: error: invalid conversion from 'int' to 'const char*' [-fpermissive]
"xxxx"); // Hasło lokalizacji
^
In file included from C:\Arduino\Projekty\projekt12\projekt12.ino:5:0:
C:\Arduino\libraries\SuplaDevice/SuplaDevice.h:266:8: error: initializing argument 4 of 'bool SuplaDeviceClass::begin(char*, const char*, int, const char*, unsigned char)' [-fpermissive]
bool begin(char GUID[SUPLA_GUID_SIZE],
^
projekt12:220:27: error: invalid conversion from 'const char*' to 'unsigned char' [-fpermissive]
"xxxx"); // Hasło lokalizacji
^
In file included from C:\Arduino\Projekty\projekt12\projekt12.ino:5:0:
C:\Arduino\libraries\SuplaDevice/SuplaDevice.h:266:8: error: initializing argument 5 of 'bool SuplaDeviceClass::begin(char*, const char*, int, const char*, unsigned char)' [-fpermissive]
bool begin(char GUID[SUPLA_GUID_SIZE],
^
C:\Arduino\Projekty\projekt12\projekt12.ino: In function 'SuplaDeviceCallbacks supla_arduino_get_callbacks()':
projekt12:315:6: error: 'SuplaDeviceCallbacks' has no member named 'tcp_read'
cb.tcp_read = &supla_arduino_tcp_read;
^
projekt12:316:6: error: 'SuplaDeviceCallbacks' has no member named 'tcp_write'
cb.tcp_write = &supla_arduino_tcp_write;
^
projekt12:317:6: error: 'SuplaDeviceCallbacks' has no member named 'eth_setup'
cb.eth_setup = &supla_arduino_eth_setup;
^
projekt12:318:6: error: 'SuplaDeviceCallbacks' has no member named 'svr_connected'
cb.svr_connected = &supla_arduino_svr_connected;
^
projekt12:319:6: error: 'SuplaDeviceCallbacks' has no member named 'svr_connect'
cb.svr_connect = &supla_arduino_svr_connect;
^
projekt12:320:6: error: 'SuplaDeviceCallbacks' has no member named 'svr_disconnect'
cb.svr_disconnect = &supla_arduino_svr_disconnect;
^
exit status 1
invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive]
Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Po błędach wnioskuję, że wrzuciłeś stary projekt "ino" z nową biblioteką. To nie będzie działaćbigthomas wrote: Wed Nov 27, 2019 12:39 pm Niestety z Twoją biblioteką mam błędy przy kompilacji (na poprzedniej bibliotece działało).
Musisz przerobić swoją aplikację, aby działała z nową biblioteką. Zobacz sobie przykłady, ale chociażby użyj tego przykładu, który wstawiłem w poprzedniej wiadomości.
Jeśli potrzebujesz pomocy, to wklej tutaj swój kod (albo wyślij go).
Najlepsze suple dla Twojego domu 
