Stromzähler mit Impulsen am Raspberry GPIO-Port auswerten

Begonnen von bismosa, 21 November 2017, 12:30:59

Vorheriges Thema - Nächstes Thema

bismosa

Hallo,
nachdem ich nun recht lange gesucht habe, möchte ich hier mal meine Lösung vorstellen, wie ich meinen Stromzähler in FHEM eingebunden habe.

Erstmal ein großes Danke an pink99panther. Die Idee stammt von ihm! Allerdings benötige ich kein MQTT.
https://forum.fhem.de/index.php/topic,61731.0.html

1.) Hardwareaufbau:
Ich nutze eine günstige Reflexlichtschranke TCRT5000 (5 Stück für 4,09€ https://www.ebay.de/itm/400995017363 )
Ich speise diese mit 3,3V (bei mir nicht aus dem Raspberry, sondern mit den günstigen Step-Down Wandlern AMS1117)

Die Lichtschranke wird nur mit den 3,3V versorgt und der Digitalausgang mit einem GPIO-Port des Raspberrys verbunden.

Hier wird noch eine Möglichkeit vorgeschlagen, die Lichtschranke zu Optimieren. Hat bei mir nicht so gut funktioniert.
Daher nutze ich nun einen unverändertes Modul. https://forum.fhem.de/index.php/topic,54408.msg491250.html#msg491250

2.) GPIO_Stromzaehler

define GPIO_Stromzaehler RPI_GPIO 13
attr GPIO_Stromzaehler direction input
attr GPIO_Stromzaehler event-on-change-reading state
attr GPIO_Stromzaehler interrupt both
attr GPIO_Stromzaehler pud_resistor down
attr GPIO_Stromzaehler room Technik_Strom

Der GPIO-Port muss ggf. angepasst werden.

3.) FileLog

define FileLog_Stromverbrauch FileLog ./log/Stromverbrauch-%Y-%m.log Strom:Akt_Leistung:.*|Strom:total:.*
attr FileLog_Stromverbrauch room Technik_Strom

Ich logge bewusst nur die Werte, die wir später auch benötigen.

4.) dummy Strom

define Strom dummy
attr Strom userattr UmdrehungenProkWh
attr Strom UmdrehungenProkWh 75
attr Strom readingList Akt_Leistung Stromumlaufzeit kWh_Gestern StromverbrauchStd kWh_Jahr kWh_Monat kWh_Woche kWh_letzte_Woche total
attr Strom room Technik_Strom
attr Strom userReadings zaehler_jetzt:StromverbrauchTag.* monotonic {ReadingsVal($name,'StromverbrauchTag',0)}

Hier werden die Werte später gespeichert. Hier wird auch die Einstellung für den Zähler vorgenommen! (UmdrehungenProkWh)

5.) Notify

define StromverbrNoti notify GPIO_Stromzaehler:on {\
#Einstellungen\
my $UmdrehungenProKWh = AttrVal("Strom","UmdrehungenProkWh",0);;\
my $KostenProKWh = AttrVal("Strom","KostenProkWh",0);;\
\
##Zeit für eine Umdrehung (in s)\
my $now = time;;\
my $Timestamp = time_str2num(ReadingsTimestamp("Strom","Time","0"));;\
my $StromUmlaufzeit = ($now - $Timestamp);;\
if ($StromUmlaufzeit < 1) {\
Log 1, ("Stromumlaufzeit zu gering!: $StromUmlaufzeit");;\
return;;\
}\
fhem("setreading Strom Time $now");;\
fhem("setreading Strom Stromumlaufzeit $StromUmlaufzeit");;\
##Log 1, ("Stromumlaufzeit: $StromUmlaufzeit");;\
##my $StromUmlaufzeit = ReadingsVal("PulsStrom","Time","0") / 1000;;\
\
##Counter\
my $count = ReadingsVal("Strom","Count","0");;\
$count = $count + 1;;\
fhem("setreading Strom Count $count");;;;\
##my $count = ReadingsVal("PulsStrom","Count","0");;\
\
#Zaehlerstand\
my $total = ReadingsVal("Strom","total","0");;\
$total = $total + (1/$UmdrehungenProKWh);;\
fhem("setreading Strom total $total");;\
\
\
##Aktuelle Leistung\
my $StromProStd=0;;\
if ($StromUmlaufzeit > 0){\
$StromProStd=(3600)/($StromUmlaufzeit*$UmdrehungenProKWh);;\
}\
my $StromProStdRounded=0;;\
if($count > 0){\
$StromProStdRounded=int(1000 * $StromProStd + 0.5) / 1000;;\
}\
##my $StromProTag = ReadingsVal("PulsStrom","Total","0") / 1000;;\
fhem("setreading Strom Akt_Leistung $StromProStdRounded");;;;\
##fhem("set Strom StromverbrauchTag $StromProTag");;;;\
\
##Tageszaehler\
my $TagesVerbrauch=$count/$UmdrehungenProKWh;;\
fhem("setreading Strom kWh_Tag $TagesVerbrauch");;\
\
}
attr StromverbrNoti room Technik_Strom

Das Notify berechnet die Zeit für eine Umdrehung, setzt den Zählerstand, einen Counter, berrechnet die aktuelle Leistung und setzt den Tageszähler.

6.) DOIF

define di_Strom DOIF ([00:00]) ({\
##Jeden Tag\
my $ValTag = ReadingsVal("Strom","Count","0");;\
my $UmdrehungenProKWh = AttrVal("Strom","UmdrehungenProkWh",0);;\
##kWh Verbrauch des Vortags\
my $ValVortag = $ValTag / $UmdrehungenProKWh;;\
fhem("setreading Strom kWh_Gestern $ValVortag");;\
##Loeschen des Counters\
fhem("setreading Strom Count 0");;\
\
##kWh Verbrauch der Woche\
my $ValWoche = ReadingsVal("Strom","kWh_Woche","0");;\
$ValWoche = $ValWoche + $ValVortag;;\
fhem("setreading Strom kWh_Woche $ValWoche");;\
\
##kWh Verbrauch Monat\
my $ValMonat = ReadingsVal("Strom","kWh_Monat","0");;\
$ValMonat = $ValMonat + $ValVortag;;\
fhem("setreading Strom kWh_Monat $ValMonat");;\
\
##kWh Verbrauch Jahr\
my $ValJahr = ReadingsVal("Strom","kWh_Jahr","0");;\
$ValJahr = $ValJahr + $ValVortag;;\
fhem("setreading Strom kWh_Jahr $ValJahr");;\
\
##Jede Woche\
if ($wday==1){\
fhem("setreading Strom kWh_letzte_Woche $ValWoche");;\
##Zuruecksetzen:\
fhem("setreading Strom kWh_Woche 0");;\
}\
\
##Jeden Monat\
if ($mday==1){\
fhem("setreading Strom kWh_letzter_Monat $ValMonat");;\
##Zuruecksetzen:\
fhem("setreading Strom kWh_Monat 0");;\
}\
\
##Jedes Jahr\
if ($yday==1){\
fhem("setreading Strom kWh_letztes_Jahr $ValJahr");;\
##Zuruecksetzen:\
fhem("setreading Strom kWh_Jahr 0");;\
}\
\
})
attr di_Strom do always
attr di_Strom room Technik_Strom

Jeden Tag (bzw. dann auch 1x pro Woche/Monat/Jahr)
- Zähler zurücksetzen
- Werte vom Vortag setzen
- Wochen/Monats/Jahresverbrauch addieren

7.) ReadingsGroup

define 0_Stromverbrauch readingsGroup Strom:Akt_Leistung Strom:total Strom:kWh_Tag Strom:kWh_Gestern Strom:kWh_Woche Strom:kWh_letzte_Woche Strom:kWh_Monat Strom:kWh_letzter_Monat Strom:kWh_Jahr Strom:kWh_letztes_Jahr
attr 0_Stromverbrauch group 0
attr 0_Stromverbrauch mapping {\
"Akt_Leistung" => "Momentanverbrauch", \
"total" => "Zählerstand",  \
"kWh_Tag" => "Tagesverbrauch", \
"kWh_Gestern" => "Gestern", \
"kWh_Woche" => "Woche", \
"kWh_letzte_Woche" => "letzte Woche", \
"kWh_Monat" => "Monat", \
"kWh_letzter_Monat" => "letzter Monat", \
"kWh_Jahr" => "Jahr", \
"kWh_letztes_Jahr" => "letztes Jahr"\
}
attr 0_Stromverbrauch nameStyle normalstyle="font-weight:normal"
attr 0_Stromverbrauch notime 1
attr 0_Stromverbrauch room Technik_Strom
attr 0_Stromverbrauch style style="font-size:20px"
attr 0_Stromverbrauch valueFormat {\
Akt_Leistung => "%.3f kW", \
total => "%.3f kWh", \
kWh_Tag => "%.3f kWh", \
kWh_Gestern => "%.3f kWh", \
kWh_Woche => '{sprintf("%.3f kWh",$NUM+ReadingsVal("Strom","kWh_Tag",0))}', \
kWh_letzte_Woche => "%.3f kWh", \
kWh_Monat => '{sprintf("%.3f kWh",$NUM+ReadingsVal("Strom","kWh_Tag",0))}', \
kWh_letzter_Monat => "%.3f kWh", \
kWh_Jahr => '{sprintf("%.3f kWh",$NUM+ReadingsVal("Strom","kWh_Tag",0))}', \
kWh_letztes_Jahr => "%.3f kWh"\
}
attr 0_Stromverbrauch valueStyle style="text-align:right"

Hier werden die Werte schön übersichtlich dargestellt. Die Werte für Woche/Monat/Jahr werden auch hier angepasst (mit dem Tageszähler addiert), da diese sonst nur um Mitternacht aktualisiert werden würden.

8.) Plot Gesamtzähler:

define SVG_FileLog_Stromverbrauch_1 SVG FileLog_Stromverbrauch:SVG_FileLog_Stromverbrauch_1:CURRENT
attr SVG_FileLog_Stromverbrauch_1 label sprintf("Zählerstand: %.2f kWh", $data{currval1})
attr SVG_FileLog_Stromverbrauch_1 room Technik_Strom


SVG_FileLog_Stromverbrauch_1.gplot

# Created by FHEM/98_SVG.pm, 2017-11-20 20:53:26
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics
set ylabel "Gesamt"
set y2label "Gesamt"

#FileLog_Stromverbrauch 4:Strom.total\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l1fill lw 1 with lines


9.) Plot Aktueller Verbrauch

define SVG_FileLog_Stromverbrauch_2 SVG FileLog_Stromverbrauch:SVG_FileLog_Stromverbrauch_2:CURRENT
attr SVG_FileLog_Stromverbrauch_2 endPlotNow 1
attr SVG_FileLog_Stromverbrauch_2 label sprintf("Verbrauch: %.3f kW", $data{currval1})." | ".sprintf("Min: %.3f kW", $data{min1})." | ".sprintf("Max: %.3f kW", $data{max1})
attr SVG_FileLog_Stromverbrauch_2 room Technik_Strom


SVG_FileLog_Stromverbrauch_2.gplot

# Created by FHEM/98_SVG.pm, 2017-11-20 21:10:13
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid
set ylabel ""
set y2label "Aktuelle Leistung [kW]"
set yrange [0:]
set y2range [0:]

#FileLog_Stromverbrauch 4:Strom.Akt_Leistung\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'Leistung' ls l1fill lw 1 with lines


Ist bestimmt viel zu kompliziert gedacht. Aber es funktioniert bisher problemlos (läuft aber erst seit ein paar Stunden)
Vielleicht kann das ja jemand mal gebrauchen. Ihr könnt auch gerne euren Senf dazu abgeben  :)

Da das Ganze erst seit ein paar Stunden läuft, sind die Werte natürlich noch unpraktikabel. Aber man sieht genau, wann Waschmaschine/Trockner lief und das Mittags gekocht wurde.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

steffen83

Hallo bismosa,

kannst du noch ein Foto machen, wie die Lichtschrank am Zähler befestigt ist?

Gruß
Steffen
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

bismosa

Hallo,

richtig befestigt ist das noch nicht. Ich habe einfach ein Stück Schaumstoff genommen und einen kleinen Ausschnitt für die Dioden gemacht. Dann das Ganze mit Krepp Fixiert.
Richtig gut funktioniert das auch leider noch nicht. Ich denke durch Temperaturschwankungen ändert sich immer mal wieder die Justierung und es kommen Fehlimpulse. Bin immer mal wieder am nachjustieren...
Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

Hallo,

ich habe den Sensor nun seit einer Woche endlich Störungsfrei!
Nachdem ich immer wieder Fehlimpulse hatte, die wohl auch durch die schlechte Befestigung zurückzuführen waren habe ich mir das nochmal genauer angeschaut.

Meine Vermutung ist, das einfach zu viel von der Scheibe reflektiert wird. Solange der Sensor dicht angebracht ist geht das noch. Aber wehe es löst sich nur einen minimalen Spalt...dann ist schon wieder vorbei.
Nach vielen Versuchen habe ich dann das Kunststoffteil vom TCRT entfernt und einfach etwas Schrumpfschlauch komplett über die Sensoren gesetzt. Nun liegen diese auch direkt an der Scheibe an...und es gibt keine Probleme mehr.

Ich hoffe, dass es jetzt "dauerhaft" klappt.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

steffen83

Hallo Bismosa,
erst mal super Anleitung. Dies hat alles super bei mir geklappt. Irgendwas wird auch schon Empfangen und ausgewertet. Ich denke ich habe aber ein kleines Problem, da ich nicht auf den PI gehe sondern das über einen Wemos D1 Mini abfange.
Aber evtl. ist dies ja auch bei dir so und du kannst mir etwas dazu sagen.
Und zwar bekomme ich 2x ein Implus. Einma, wenn der rote Bereich Anfängt (1,0) und wenn der rote Bereich aufhört (1,0)
Ich weiß jetzt allerdings nicht, was er genau berechnet. Da mein FHEM mir manchmal 2 Werte zurückspiegelt. Einmal einen hohen, so um die 3-5kW und einmal wohl den tatsächlichen von 0,x kW.
Das gibt natürlich unschöne Werte wie man auf den Bildern sehen kann.

Hast du hier ne Idee?
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

bismosa

Hallo Steffen,

finde ich super, das Du es mal nachgebaut hast. Das sieht ja fast so aus wie bei mir  :)

Leider kenne ich mich mit dem Wemos nicht aus. Aber das Problem hast Du ja bereits selbst ermittelt. Du bekommst einen Impuls, bei jeder Umschaltung.
Ich habe es so, das ich zwar auch einen Interrupt "both" im GPIO-Modul habe, allerdings werte ich nur aus, wenn der state im StromverbrNoti "on" ist. Also wird nur berechnet, wenn der Rote Bereich in der Lichtschranke auftaucht.

GPIO_Stromzaehler:on {
...


Ich weiß ja nicht, wie Du das beim Wemos aufgebaut hast...gibst Du nur die Impulse oder auch den Status an FHEM?

Eine anderes Problem (das bei mir jetzt endlich weg ist) entsteht noch, wenn der Sensor nicht ganz an der Scheibe anliegt oder auch wenn der Sensor nicht gut genug ausgerichtet ist. Dann gibt es immer mal wieder Fehlimpulse. Aber das sieht man deutlich auch an der LED. Davon geht ich jetzt mal nicht aus?

Viel Erfolg!
Gruß
Bismosa

1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

steffen83

Hallo Bismosa,

am Sensor selbst sehe ich ja auch die LED. Aber diese springt halt 2mal. Das hat nichts mit dem Wemos zu tun.

Leuchtet deine LED denn beim roten Bereich?
So wie ich lese springt deine LED ja auch nur einmal um und nicht zweimal.

Das heißt, wenn ich das richtig verstanden habe. Berechnet er nur die Strecke/Laufzeit im roten Bereich, richtig?

Gruß
Steffen
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

bismosa

Hallo,

Zitat von: steffen83 am 21 Dezember 2017, 08:27:33
Das heißt, wenn ich das richtig verstanden habe. Berechnet er nur die Strecke/Laufzeit im roten Bereich, richtig?
nein. Es wird eine volle Umdrehung berechnet. D.h. immer sobald der Sensor am Anfang des Roten Bereiches ist erfolgt die Berechnung. Das Ende des Roten Bereiches ist somit nicht relevant.

Bei mir Leuchtet die LED dauerhaft. Nur im Roten Bereich geht diese aus.

Viel Erfolg!
Gruß
Bismosa

1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

steffen83

Hallo in die Runde,

habe den Fehler nun gefunden und auch auf on/off gestellt und nicht mit Counter gearbeitet.
Nun läuft es Fehlerfrei... mal sehen was die Grafik dann in ein paar Tagen so anzeigt :-)
Auf jeden Fall noch mal SUPER ANLEITUNG
Gruß
Steffen

ps.: Im Anhang noch die WEMOS D1 mini Einstellungen.
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

bismosa

1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

eggert

Hallo Bismosa,

habe ebenfalls versucht deine Lösung nachzubauen.
Allerdings erhalte ich im LOGFILE von Fhem immer den Fehler : " Stromumlaufzeit zu gering!: 0"

Der Sensor scheint korrekt ausgerichtet zu sein, so wie ich verstanden habe, ist bei Dir die LED immer an und sobald der rote Bereich kommt, geht die LED aus.

Gruß
eggert

steffen83

Hallo Eggert,

nimm den Bereich mal aus dem Code raus

if ($StromUmlaufzeit < 1) {\
Log 1, ("Stromumlaufzeit zu gering!: $StromUmlaufzeit");;\
return;;\

und schau wie sich das dann verhält.
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

bismosa

Hallo,

die Fehlermeldung ist dafür da, kurze Fehlimpulse auszufiltern.  Wenn es so ist, das beim Umschalten kurze Impulse auftreten, dann einfach die Zeile

Log 1, ("Stromumlaufzeit zu gering!: $StromUmlaufzeit");;\

ändern in

#Log 1, ("Stromumlaufzeit zu gering!: $StromUmlaufzeit");;\


Dann kommt die Fehlermeldung nicht mehr, aber alle Impulse die kleiner 1sek. sind, werden weiterhin gefiltert.

Ich hatte auch einen Sensor, der dieses Verhalten gezeigt hat...hier ist ein möglicher Tipp: https://forum.fhem.de/index.php?topic=54408.0

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

eggert

Hallo,
vielen Dank für die schnelle Rückmeldung.
Habe die Zeile auskommentiert.
Jetzt werden Werte ermittelt, leider kein Momentanverbrauch.
Liegt das jetzt an Fehlimpulsen? Muss ich am Sensor etwas verändern?


Gruß
Eggert

bismosa

Hallo,

Zitat von: eggert am 08 Juni 2018, 09:21:33
Jetzt werden Werte ermittelt, leider kein Momentanverbrauch.
Welche Werte werden denn ermittelt? Kommen die Impulse wirklich an? Alle Devices genau so erstellt, wie in meinem Beispiel?

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

eggert

Hallo,

bei 0_Stromverbrauch werden aktuell lediglich die Werte bei
- Zählerstand , Tagesverbrauch , Woche , Monat und Jahr ermittelt.
   
im Log-File folgendes:
2018-06-08_07:41:37 Strom total: 0.0133333333333333
2018-06-08_07:41:37 Strom Akt_Leistung: 0
..
2018-06-08_17:39:54 Strom total: 28.5999999999513
2018-06-08_17:39:54 Strom Akt_Leistung: 0

Im Anhang noch ein Screenshot vom Dummy Strom.

Bin mir eigentlich sicher das ich alles richtig von deinem Beispiel übernommen habe.

Aber da mitlerweile beim Strom total ein Wert von 28.5 kWh ermittelt wurde, scheint da irgendwo noch nen Fehler zu sein,
oder der Sensor ist nicht mehr richtig positioniert.

Gruß
eggert


Polamare


bismosa

Huhu,
habe gerade wenig Zeit...
Stromumlaufzeit ist mit Minus-Wert definitiv falsch?
Zeit müsste wenn ich mich Recht erinnere in der Unix-Zeit notiert sein. Muss ich sonst morgen nochmal nachschauen...
Auf welchem System bist du?
Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

eggert

Hallo,

System ist Raspberry Pi B+ V1.2 (Raspbian GNU/Linux 9 (stretch))
Fhem (Latest Revision: 16833)

Gruß
eggert

bismosa

Hallo,
hast du denn Mal beobachtet was in fhem passiert, wenn die rote Fläche am Zähler durchläuft? Kommt das Signal an?
Habe gerade nachgesehen....bei mir ist time
1528488178.48986
Hast du vielleicht ein Zusatzmodul um Linux Zeiten anders anzuzeigen?
Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

eggert

Hallo,

habe nochmals überprüft.
Sobald der rote Bereich der Scheibe am Sensor ist, schaltet die linke LED am Sensor aus.
In Fhem leuchtet vom Device (GPIO_Stromzaehler) das Symbol (Lampe). Readings werden gesetzt.

Allerdings war der Sensor nicht mehr richtig justiert und die LED am Sensor ging aus und wieder an, aus wieder an.
Sensor neu justiert.

Zus. hatte ich im DEF vom Notify etwas geändert um den Fehler wegzubekommen.
Änderungen rückgängig gemacht und siehe da Momentanverbrauch wird auch ermittelt.

Habe die Auskommentierung der einen Zeile auch wieder Rückgängig gemacht.

Läuft jetzt ;D.


Danke für die Unterstützung.

Gruß
eggert

bismosa

Hallo,
freut mich zu hören! Danke für die Rückmeldung.
Hoffentlich hast du mehr Glück mit dem Sensor. Ich habe jetzt den 7. dran...und der läuft nun seit Wochen endlich Stabil.
Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

vchief

Hallo bismosa,
vielen Dank für deinen umfangreichen Beispielcode. Ich habe ihn für meinen S0-Zähler eingesetzt und er klappt einwandfrei.
Ich habe nur eine kleine Änderung vorgenommen (kam hier auch schon im Thread vor):

if ($StromUmlaufzeit < 1) {\
        Log 1, ("Stromumlaufzeit zu gering!: $StromUmlaufzeit");;\
        fhem("setreading Strom Time $now");;\
        return;;\
}\

Ansonsten kommt nach dem 1. Start immer nur "Stromumlaufzeit zu gering".
Für einen S0-Zähler braucht man es aber eigentlich sowieso nicht.

Nochmals vielen Dank für deine Veröffentlichung. Es funktioniert hier tadellos.

Viele Grüße

bismosa

Hallo!
Danke für die Rückmeldung!  :)
Naja...die Fehlermeldung ist ja eh Recht "lustig". Was ist denn bitte eine stromumlaufzeit? Es hätte eher ein "Signal zu oft""Signal zu oft" sein müssen...
Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Goblin

#24
Hallo Bimosa,

danke für den Code - hat mir sehr geholfen, auch wenn ich ein wenig zu kämpfen hatte..

Der Anschluss an einen GPIO vom Raspi und das Einstellen des Sensor ging bei mir noch recht problemlos  - ich hab mit meinem 3D Drucker eine entsprechende Halterung gedruckt, damit lässt sich das easy ausrichten, mit doppelseitigem Klebeband befestigen - sieht ordentlicher aus und macht das Leben einfacher...
Link zum "Thing" (sind externe Links erlaubt?) : https://www.thingiverse.com/thing:2899801

Zu kämpfen hatte ich mehr softwareseitig
Im notify fehlt ein "#"-Zeichen vor dem Wort Einstellungen, damit ist das Wort nicht auskommentiert und das notify funktioniert nicht...

Edit: Ist Blödsinn, mein Fehler war, dass ich deine Codeschnipsel "händisch" und nicht über CodeImport https://wiki.fhem.de/wiki/Import_von_Code_Snippets eingefügt habe.... Wieder was gelernt...

Die *.gplot-Daten "händisch" eintragen ist auch nicht ganz optimal - ich habe es über putty mit sudo nano SVG_FileLog_Stromverbrauch_2.gplot gelöst - zuvor FHEM mit sudo /etc/init.d/fhem stop stoppen, sonst übernimmt er es nicht...

Direkt über den Plot Editor gehts wahrscheinlich für die meisten einfacher - ich habe mal 2 Screenshots angefügt... Vielleicht hilft es dem ein oder anderen.

Besten Dank und Gruß

ASwizz

#25
Hallo zusammen,

habe gestern alles zusammen gebastelt und der Impuls kommt im FHEM an.
Auch im Notify erscheint die Uhrzeit von dem Impuls, aber dann passiert nichts, der Dummy bleibt leer.
Ich habe alles vom ersten Beitrag übernommen, musste ich dort noch etwas anpassen?

mfg ASwizz

EDIT:
Zitat von: vchief am 30 Juni 2018, 12:42:33


if ($StromUmlaufzeit < 1) {\
        Log 1, ("Stromumlaufzeit zu gering!: $StromUmlaufzeit");;\
        fhem("setreading Strom Time $now");;\
        return;;\
}\


habe die Änderung von vchief übernommen und jetzt kommen auch bei mir Werte rein.