Wie kann ich einige S0-Zähler mit fhem auf einer Fritz!Box 7390 auslesen?

Begonnen von Christian., 03 Juni 2013, 15:29:39

Vorheriges Thema - Nächstes Thema

fhainz

Hallo!

Wofür hast du die Mega wenn du eh ein Rasp Pi hast? Mit dem Raspi alleine kannst du auch schon den S0 Zähler auswerten.

Ich hab in diesem Thread (siehe hier) schon eine Anleitung gepostet, zufälliger weise hab ich das Script heute auch in Modul umgewandelt.
Das Modul reagiert auf den Impuls auf den GPIO und berechnet W, kwH, Ampere und in Zukunft auch €.
Die Doku muss ich noch machen dann kann ichs zum testen hochladen. Bei mir läufts schon auf meinem Raspi.

Grüße

Spuckiii

Also nehme ich deine StromUtils und packe die zu den anderen. dann nehme ich die sys_s0EingangAllgemein:pin:.off {
  verbrauchBerechnen("sys_s0EingangAllgemein","d_stromverbrauchAllgemein",0,7500,300);
}
und ändere das sys_s0Eingang dann ab? wenn ich jetzt mit define ZaehlerWZ FRM_IN 25 setze was muss ich dann in der sys abändern? oder muss ich da was überhaupt abändern?

Christian.

Zitat von: Spuckiii am 24 August 2014, 21:03:59
Was muss ich jetzt von wem wie machen.
1) ich habe den Mega mit der configuralbe_firmata bespielt (orignal noch nichts verändert)
2) die Stromzähler habe ich wie der Hersteller sagte einmal an +5 Volt gelegt und an den Pin 22 (digital)
3) Pin 22 als FRM_IN deklariert.

was brauche ich jetzt noch? Pls help me.Irgendwie habe ich die Übersicht verloren. Als Fhem Server nutze ich einen Raspi.

Wenn Du beim Arduino bleiben möchtest:

  • Verkabelung: S0+ des Stromzählers geht auf einen digitalen Pin des Arduino (z.B. 22), S0- geht auf Masse (GND) am Arduino.
  • Arduino: hier benötigst Du nichts außer der ConfigurableFirmata.
  • FHEM: ein normales FRM_IN-Device sollte bei jedem Impuls des Zählers mitzählen. In den Posts #57 und #70 beschreibe ich meine Konfiguration zur Umrechnung der gezählten Impulse in kWh.
fhainz hat aber Recht: wenn FHEM auf einem Raspberry Pi läuft, kannst Du auch die Stromzähler an dessen GPIO-Pins anschließen und Dir den Arduino sparen.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

fhainz

Zitat von: Spuckiii am 24 August 2014, 21:27:38
und ändere das sys_s0Eingang dann ab?

ja.

du musst ein notify erstellen das durch den gpio pin ausgelöst wird. in dem notify rufst du die funktion aus der 99_myStromUtils auf.
verbrauchBerechnen("sys_s0EingangAllgemein","d_stromverbrauchAllgemein",0,7500,300);
sys_s0EingangAllgemein = GPIO Device
d_stromverbrauchAllgemein = dummy Device in dem die Werte geschrieben werden
0 = min Power
7500 = Max Power
300 = Delta Power

Aber wie gesagt, morgen kann ich das Modul hochladen dann kannst du dir das notify sparen.

Zitat von: Spuckiii am 24 August 2014, 21:27:38
wenn ich jetzt mit define ZaehlerWZ FRM_IN 25 setze
FRM_IN ist ein Modul in Zusammenhang mit Arduino.
Wenn du den Raspi verwendest musst du die GPIO mit dem RPI_GPIO Modul definieren.

Spuckiii

ok. das hab ich jetzt verstanden... Nur 1 Sache habe ich jetzt noch wg. der Verkabelung. Wenn ich den Pin als IN definiere, heisst es ja, der Strom fließt rein, richtig?
Der Kundensupport von dem Stromzähler schrieb folgendes:

Bei dem S0 Ausgang handelt es sich um einen Galvanisch getrennten Ausgang welcher über die Klemme 20 eine positive Eingangsspannung von 5 - 27V angeschlossen wird, über die Klemme 21 kommt der Impuls in höhe der Eingangsspannung heraus.

... d.h. Masse schließe ich dann an Klemme 20 an und Pinx auf 21?

fhainz


fhainz

Ich hab jetzt noch schnell die englische doku für das modul geschrieben.
Die erste Version hänge hier an.

Zitat
CurrentMonitor

Define
define <name> S0CurrentMonitor <impulseDevice> <ReadingsRegEx>

Exampe:
define current S0CurrentMonitor gpio4 Pinlevel:.high

Set
resetDate
reset consumption and resetDate


Attributes
calcAmpere 1,0
Calculate ampere
cosphi
cosphi. only needed when calcAmpere is 1. standard: 1
minPower
Minimum power in Watt. Smaller values will be set so minPower
maxPower
Maximum power in Watt. Bigger values will be ignored
deltaPower
Allowed difference between last power and current power. If power is bigger than lastPower + deltaPower, first impulse will be ignored, second will be set to power reading
pulses
pulses per kwh
meterType 1+N,3+N
1 phase or 3 phase meter. Needed when calcAmpere is 1. standard: 1+N

Ausführlichere und deutsche Doku kommt dann morgen.


Grüße

Spuckiii

Meine Zähler stoßen einen impuls von 30ms aus. und bei 2000 imulse sind es 1 kwh. Muss ich dafür noch irgendwo was beachten?

fhainz

Impulse dauer ist egal.
Impulse kannst du nur im Modul einstellen.

Zitatpulses
pulses per kwh

Spuckiii

ich denke ich warte bis morgen, habe es heruntergeladen und danach n restart,
habe das modul wie folgt
define current S0CurrentMonitor ZaehlerWz Pinlevel:.high (arduinoPin)
das device ZaehlerWZ ist auf defined .. und es tut sich nichts mehr

fhainz


Spuckiii

jup setzt fleissig auf on / off... jetzt muss ich es nur noch loggen.... irgendwie

Bennemannc

Hallo Spuchiii,

ich habe so etwas mit einem Panstamp gemacht - also ein Arduino mit Funkmodul. Der sammelt 15min lang Impulse und sendet diese dann an Fhem. Danach werden die Zähler zurückgesetzt und es geht von vorne los. Fhem loggt die (für Grafik) und mit dem Average Modul werden die Tages und Monatswerte gebildet.
Wenn Du Interesse hast, kann ich Dir den Sketch senden.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Spuckiii

Hallo Bennemannc,

da ich den Server direkt neben dem Sicherungskasten habe brauch ich die PanStamps (erstmal) nicht.

Spuckiii

@fhainz

wird dann die Auswertung auch automatisch dann irgendwo angezeigt werden, also direkt mit Plot? oder zum. nem Filelog? Oder wie wird die Ausgabe erfolgen.