S0 kwhmeter uitlezen, maar 4de RFXMETER lukt niet

Pagina: 1
Acties:

Onderwerpen

Vraag


  • arnaudarduino
  • Registratie: Juli 2015
  • Laatst online: 14-05-2022

arnaudarduino

Trial and error, and reverse

Topicstarter
Systeem info
Domoticz
Version: 4.10717
Build Hash: b38b49e5
Compile Date: 2019-05-09 13:04:08
dzVents Version: 2.4.19
Python Version: 3.4.2 (default, Oct 19 2014, 14:03:53) [GCC 4.9.1]

Ik lees onze Landis en Gyr E350 meter uit
en met dit script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import urllib2
import os

#Watermeter stand (wordt alleen initeel gebruikt als er geen bestand meterstand.txt is)
global Counter
Counter = 108581
#Domoticz URL
domoticz_url = "http://192.168.2.18:8080"
#Domoticz IDX van de water sensor (RFXMeter)or other counter
idx = 38

#Open meterstand.txt file en lees meterstand
#Als meterstand.txt niet aanwezig is maakt script bestand aan en vult de meterstand
fn = "/home/pi/domoticz/scripts/groenmeterstand.txt"
if os.path.exists(fn):
    f = file(fn, "r+")
    f = open(fn)
    inhoud = f.readline()
    a,b,c = inhoud.split()
    Counter = float(c)
else:
    f = open(fn, "w")
    f.write( 'meterstand = ' + repr(Counter))
    f.close()

#Board is pin nr, BMC is GPIO nr
#Read output from water meter op pin 40
GPIO.setmode(GPIO.BOARD)
# Set GPIO 21 (Pin 40) als Input aditioneel als Pullup-Weerstand aktiveren
GPIO.setup(36, GPIO.IN, pull_up_down = GPIO.PUD_UP)

#Functie  callback
#Dit is de functie die aangeroepen wordt in de interrupt
def Interrupt(channel):
  #Teller elke interupt uitlezen en met 1 liter verhogen 
  f = file(fn, "r+")
  f = open(fn)
  inhoud = f.readline()
  a,b,c = inhoud.split()
  Counter = float(c)
  Counter = Counter + 1
  f.close()
  #Schrijf meterstand naar bestand
  f = open( fn, 'w')
  f.write( 'meterstand = ' + repr(Counter))
  f.close()
  #Send counter to domoticz JSON
  url1 = domoticz_url+'/json.htm?type=command&param=udevice&idx='+str(idx)+'&svalue='+str(Counter)
  req1 = urllib2.Request(url1)
  response1 = urllib2.urlopen(req1)
  #Voor debug => print voorbeeld van de JSON aanroep en/of de counter
  #print "JSON call = "+ str(url1)
  #print "Watermeter Counter = " + str(Counter)

#Interrupt-Event toevoegen, bij een NPN off geeft sensor een 1 en en bij detectie een 0
#Bij detectie (LED on) een 0 daarom check dalende interrupt.

GPIO.add_event_detect(36, GPIO.FALLING, callback = Interrupt, bouncetime = 3)
#GPIO.add_event_detect(40, GPIO.RISING, callback = Interrupt, bouncetime = 200) 
try:
  while True:
      time.sleep(1)
except KeyboardInterrupt:
  GPIO.cleanup()
  print "\nBye"

lees ik de s0 kwh meters uit. Met 3 kwh meters met RFXMeter, is dat gelukt
Nu wil ik een 4 en 5de maken maar het lukt maar niet.

In welke log zou de fout naar voren komen.

Ook heb ik al nieuwe hardware (dummy does nothing) en nieuwe teller aangemaakt ,
Idx en gpio nr gecontrolleerd, als ik de puls gevers verwissel dan geeft die dat weer maar de 4 of 5de teller laat niks zien.

...

[ Voor 97% gewijzigd door arnaudarduino op 15-12-2019 15:10 ]

Alle reacties


  • titan1901
  • Registratie: Januari 2015
  • Laatst online: 22:21
Wat een vaag verhaal. Geef eens duidelijk aan wat voor hardware je gebruikt. Aan je gebruikersnaam te zien vermoed ik een arduino?

Zit je niet aan de limiet van het aantal pinnen wat interrupt ondersteund?