Gaszähler reed direkt an GPOI

Begonnen von Henno, 20 Februar 2014, 11:42:37

Vorheriges Thema - Nächstes Thema

Henno

Hi

ist es möglich einen reed Kontakt direkt an einen gpio vom Raspberry pi anzuschließen und auszulesen?

Wenn ja wie?

blueberry63

#1
Ja, das habe ich so gemacht. Du solltest nur Pullup/Pulldown-Widerstände verwenden. Zur Not geht es auch mit den internen, zuschaltbaren Widerständen des GPIO.

Hier meine Definition in FHEM:
Geräte:
Zitat
define gpio_pin11 RPI_GPIO 17
attr gpio_pin11 direction input
attr gpio_pin11 interrupt falling
attr gpio_pin11 pud_resistor up
attr gpio_pin11 room Heizung,System
attr gpio_pin11 DbLogExclude .*Toggle.*,.*Counter.*,.*state.*


Zum Auslesen nehme ich das Modul HourCounter (ist noch nicht offiziell, funktioniert aber prima):
Zitat
define CN.Gas HourCounter gpio_pin11:Pinlevel:.low.*
attr CN.Gas verbose 1
attr CN.Gas DbLogExclude .*appOp.*,.*pause.*,.*pulse.*
attr CN.Gas room Heizung

define CN.EventGas notify CN.Gas:(countsOverall:|value:|tickHour:|tickDay:|ti
ckWeek:|tickMonth:).* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr CN.EventGas room Heizung

Anschluß des Reedkontaktes:

Reedkontakt an PIN 11 (GPIO 17) und an PIN 6 (Masse)
PullUp Widerstand 10K an PIN 11 und an PIN 1 (3.3V)

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

Ich habe übrigens keinen Erfolg mit dem Anbringen eines eigenen Reedkontaktes am Gaszähler gehabt (zu viele Aussetzer). Nach Anruf beim Gaslieferant wurde mir kostenlos ein IN-Z61 installiert. Damit läuft alles super.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Henno

Danke für deine Antwort.

Ich habe einen Z62 mit zum neuen Zähler dabei bekommen.

Ich habe es geschafft das ganze über RS232 anzuschließen und habe es auch in FHEM jedoch gefällt mir das ganze so über den Maxcounter nicht.

Ich werde das ganze auf 1-Wire umbauen um den OWCOUNTER nutzen zu können.


blueberry63

Hallo Henno,

was ist der Vorteil von OWCounter? Ich habe eben mal kurz die Commandref gelesen und kann keinen Vorteil erkennen (nur Mehrkosten). Hast Du das Wiki zu HourCounter gelesen:
http://www.fhemwiki.de/wiki/HourCounter

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Henno

#5
Beim Hourcounter finde ich keine Möglichkeit das Komma richtig zu setzen.

Mein Zähler hat 1 imp. = 0,01 m³

Bei Hourcounter müsste ich doch jedesmal umrechnen.

Henno

#6
edit

falscher thread

strauch

#7
Ich mach das so (in m3 und dann in kwh):
attr hwr_Gaszaehler userReadings verbrTagkWh {sprintf("%.1f",ReadingsVal("hwr_Gaszaehler","countsPerDay",0)*0.01*11.15) . " kWh";;;;}

Oder Alternativ direkt im Plot umrechnen (in m3):
#FileLog 4:hwr_Gaszaehler.countsPerDay\x3a::$fld[3]/=100
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

slebeig

Hallo,
ich wärm das hier mal auf.
Habe es aktuell so bei mir eingerichtet wie oben beschrieben. Jedoch zählt der Counter bei JEDEM Toggle, also on wie off, was bei einem Gaszähler pro Impuls immer 2 Zählschirtte sind.

Anbei ein Logauszug:

2014-07-07_18:07:25 Gas Counter: 3619987
2014-07-07_18:15:02 Gas Pinlevel: high
2014-07-07_18:15:02 Gas on
2014-07-07_18:15:02 Gas Toggle: off
2014-07-07_18:15:02 Gas Counter: 3619988
2014-07-07_18:15:04 Gas Pinlevel: high
2014-07-07_18:15:04 Gas on
2014-07-07_18:15:04 Gas Toggle: on
2014-07-07_18:15:04 Gas Counter: 3619989
2014-07-07_18:15:18 Gas Pinlevel: high
2014-07-07_18:15:18 Gas on
2014-07-07_18:15:18 Gas Toggle: off
2014-07-07_18:15:18 Gas Counter: 3619990


Unser Gaszähler dreht sehr gemächlich. In Fall des Logs ist der erste Impuls bei 18:15:02 gekommen, der zweite um 18:15:18.

Das Reed-Kontakt am Gaszähler ist wie folgt definiert:


Internals:
   DEF        24
   EXCEPT_FD  26
   NAME       Gas
   NR         89
   RPI_pin    24
   STATE      on
   TYPE       RPI_GPIO
   Readings:
     2014-07-07 18:15:18   Counter         3619990
     2014-07-07 18:15:18   Pinlevel        high
     2014-07-07 18:15:18   Toggle          off
     2014-07-07 18:15:18   state           on
   Fhem:
     interfaces switch
Attributes:
   direction  input
   interrupt  rising
   pud_resistor up


Ich habe es auch mit anderen Kombinationen aus "Interrupt" und "pud_resistor" probiert, aber der Effekt ist immer der selbe.

Wie kann ich dem das "doppeltzählen" abgewöhnen?

Danke und Gruss

Jan