Jestem zielony, ale chciałbym dodać wartości z 3 sensorów Shelly PM3 w Node-Red
sensor.faza_3_energy_returned
sensor.faza_2_energy_returned
sensor.faza_1_energy_returned
Chciałbym nadać odpowiednią jednostkę oraz wysłać do MQTT (to akurat umiem ),
Mam takie rozwiązanie w HA sensor_templates lecz wykres historii jest nieczytelny
Kilka razy dziennie wykres spada do zera
shelly_wyslana:
Też mam problem z podłączeniem się shelly3em, dodam że już raz reklamowalem bo wifi całkiem padło.Teraz się rozpaczą co jakiś czas na chwilę.Sygnal wifi silny 4m od routera.
Funkcja porównuje wartość obecną z poprzednią.
Wartość mierzona w msg.payload.
Jeśli wartość bezwzględna porównania jest większa od 2 to zakładamy, że coś jest nie tak z pomiarem (wartość należy dobrać dla własnych potrzeb).
Zwraca w payload “prawidłową” wartość poprzednią lub prawidłową obecną.
Sprawdzi się to w przypadku pomiarów energii, które zawsze rosną i ich max przyrost między pomiarami łatwo oszacować
var last = flow.get('lastVal') || 0;
if (last == 0){
last = msg.payload;
flow.set('lastVal',msg.payload);
return null;
}
var dif =Math.abs(msg.payload - last);
#2 to granica o ile może znienić wartość pomiędzy pomiarami
if (dif < 2) {
flow.set('lastVal',msg.payload)
return msg;
}
msg.payload = last;
return msg;
a nie robiłeś @rakon ostatnio aktualizacji shelly ?
brzydki wykres to jedno a brak możliwości zalogowania po lan to co innego
Uwaga na soft shelly version: 20220209-094824/v1.11.8-g8c7bb8d po nim na jednym z liczników miałem ten sam problem. na innych w tej samej sieci nie.
Proszę o pomoc mam ShellyEM3, niestety licznik ma delikatny odchył.
W templates wykonałem sensor i obliczenia są prawidłowe,
# Energia pobrana z zakładu energetycznego PGE
pobrana_pge:
device_class: energy
friendly_name: "Energia pobrana z PGE"
value_template: >-
{{ ((states('sensor.faza_1_energy')|float + states('sensor.faza_2_energy')|float + states('sensor.faza_3_energy')|float) /1.029797961990057) |float(0)|round(2) }}
unit_of_measurement: "kWh"
Niestety każdorazowe zawirowanie z WiFi zniekształca wykres histri (głupata ale denerwuje )
W node-red zrobiłem flow, ale nie ogarniam Twojej podpowiedzi.
var last = flow.get('lastVal') || 0;
if (last == 0){
last = msg.payload;
flow.set('lastVal',msg.payloada);
return null;
}
var dif =Math.abs(msg.payload - last);
if (dif < 0.10) {
flow.set('lastVal',msg.payload)
return msg;
}
msg.payload = last;
return msg;
Nie wiadomo jak to ustawić i po sumowaniu trzeba resetować.
Zrób to po ludzku… “join” i funkcja sumująca 3 wartości po topic.
Dodatkowo, nody “event:state” nie zapewnią “jednoczesności” danych z 3 faz, lepiej zastosować “current:state”