I thought so, thnx for confirming my suspicion. A new one is on its way, just have to wait for a few weekspvangorp wrote:Trigun, looks to me your sensor is defect!
Sent from my iPhone using Tapatalk
Moderators: leecollings, remb0
I thought so, thnx for confirming my suspicion. A new one is on its way, just have to wait for a few weekspvangorp wrote:Trigun, looks to me your sensor is defect!
Your welcome!Trigun wrote: Sunday 03 September 2017 18:58I thought so, thnx for confirming my suspicion. A new one is on its way, just have to wait for a few weekspvangorp wrote:Trigun, looks to me your sensor is defect!
Sent from my iPhone using Tapatalk
pvangorp wrote: Sunday 03 September 2017 19:00 LouiS22,
Connect the brown wire to 5v of the pi and Blue to the gnd. Connect black to a GPIO with a zener diode to convert the 5v to 3.3v. the GPIO needs 3.3v instead of 5v. Have you configured the sysfs export?
Code: Select all
sudo raspi-gpio set 21 ip pu
echo "21" > /sys/class/gpio/export
echo "1" | sudo tee -a /sys/class/gpio/gpio21/active_low
echo "both" | sudo tee -a /sys/class/gpio/gpio21/edgeLouiS22 wrote: Sunday 03 September 2017 19:18pvangorp wrote: Sunday 03 September 2017 19:00 LouiS22,
Connect the brown wire to 5v of the pi and Blue to the gnd. Connect black to a GPIO with a zener diode to convert the 5v to 3.3v. the GPIO needs 3.3v instead of 5v. Have you configured the sysfs export?Code: Select all
sudo raspi-gpio set 21 ip pu echo "21" > /sys/class/gpio/export echo "1" | sudo tee -a /sys/class/gpio/gpio21/active_low echo "both" | sudo tee -a /sys/class/gpio/gpio21/edge
Code: Select all
echo 21 > /sys/class/gpio/unexport
echo 21 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio21/direction
echo 0 > /sys/class/gpio/gpio21/active_low
echo both > /sys/class/gpio/gpio21/edge
raspi-gpio set 21 pd
Code: Select all
sudo raspi-gpio get 21
Thanks for the directions. I've tested, the level changes to 1 when placing a magnet near to the sensor - so it should be ok. However I still get the GPIO INIT ERROR in Domoticz.pvangorp wrote: Sunday 03 September 2017 19:26LouiS22 wrote: Sunday 03 September 2017 19:18pvangorp wrote: Sunday 03 September 2017 19:00 LouiS22,
Connect the brown wire to 5v of the pi and Blue to the gnd. Connect black to a GPIO with a zener diode to convert the 5v to 3.3v. the GPIO needs 3.3v instead of 5v. Have you configured the sysfs export?Code: Select all
sudo raspi-gpio set 21 ip pu echo "21" > /sys/class/gpio/export echo "1" | sudo tee -a /sys/class/gpio/gpio21/active_low echo "both" | sudo tee -a /sys/class/gpio/gpio21/edgeYou can test it using:Code: Select all
echo 21 > /sys/class/gpio/unexport echo 21 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio21/direction echo 0 > /sys/class/gpio/gpio21/active_low echo both > /sys/class/gpio/gpio21/edge raspi-gpio set 21 pdLevel=0 changes in Level=1Code: Select all
sudo raspi-gpio get 21
Hah... Found it another topic: DO NOT USE the manual add for the switch, the found devices are directly created in devices tab, if you try a manual add it will still display "GPIO INIT ERROR".pvangorp wrote: Sunday 03 September 2017 19:56 That doesn't cause the error. It's for protection of the GPIO. It's designed for 3.3v. Do you use sysfs. Make sure not to use Raspberry GPIO and sysfs GPIO combined in domoticz.The GPIO part outside domoticz is oké. You only have to focus on domoticz.
Code: Select all
2017-09-03 20:01:22.841 Sysfs GPIO: gpio21 new state = on
2017-09-03 20:01:22.846 (Watermeter GPIO) Lighting 2 (GPIO Watermeter)
2017-09-03 20:01:27.405 Sysfs GPIO: gpio21 new state = off
2017-09-03 20:01:27.409 (Watermeter GPIO) Lighting 2 (GPIO Watermeter)pvangorp wrote: Sunday 03 September 2017 19:56 That doesn't cause the error. It's for protection of the GPIO. It's designed for 3.3v. Do you use sysfs. Make sure not to use Raspberry GPIO and sysfs GPIO combined in domoticz.The GPIO part outside domoticz is oké. You only have to focus on domoticz.
Code: Select all
2017-09-03 20:10:00.929 EventSystem: Started
2017-09-03 20:10:00.929 EventSystem: Queue thread started...
2017-09-03 20:10:00.976 Active notification Subsystems: (0/12)
2017-09-03 20:10:09.776 Sysfs GPIO: gpio21 new state = on
2017-09-03 20:10:09.786 (Watermeter GPIO) Lighting 2 (Watermeter GPIO)
2017-09-03 20:10:09.981 LUA: Water usage is still 0m3
2017-09-03 20:10:09.986 EventSystem: Script event triggered: Watermeter
2017-09-03 20:10:13.458 Sysfs GPIO: gpio21 new state = off
2017-09-03 20:10:13.467 (Watermeter GPIO) Lighting 2 (Watermeter GPIO)
2017-09-03 20:10:13.601 LUA: Water usage is set to 0.001m3
2017-09-03 20:10:13.607 EventSystem: Script event triggered: Watermeter#!/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 = 1154651
#Domoticz URL
domoticz_url = "http://192.168.102.57:8081"
#Domoticz IDX van de water sensor (RFXMeter)
idx = 16
#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/meterstand.txt"
if os.path.exists(fn):
f = file(fn, "r+")
f = open(fn)
inhoud = f.readline()
a,b,c = inhoud.split()
Counter = int(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 10
GPIO.setmode(GPIO.BOARD)
# Set GPIO 15 (Pin 10) als Input aditioneel als Pulldown-Weerstand aktiveren
GPIO.setup(10, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
#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 = int(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¶m=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 0 en en bij detectie een 1
#Bij detectie (LED on) een 1 daarom check dalende interrupt.
GPIO.add_event_detect(10, GPIO.RISING, callback = Interrupt, bouncetime = 800)
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
print "\nBye"
what im doing wrong ???2017-09-05 10:21:12.510 Error: EventSystem: in NPN: [string "commandArray = {} ..."]:8: attempt to perform arithmetic on global 'sWaterUsage' (a nil value)
2017-09-05 10:21:21.808 Error: EventSystem: in NPN: [string "commandArray = {} ..."]:8: attempt to perform arithmetic on global 'sWaterUsage' (a nil value)
commandArray = {}
-- Water usage
-- Retrieve value from water meter device:
sWaterUsage = otherdevices_svalues['Water'']
-- To have a better readable format, divide number by 1000:
sWaterUsagePrint = tonumber(sWaterUsage / 1000);
-- calculation is done with the unmodified water value
sWaterUsage = tonumber(sWaterUsage);
-- For Debuging
-- print("Water usage until now is " .. sWaterUsagePrint .. "m3 ")
-- print('GPIO Watermeter = '..otherdevices['GPIO15'])
function timedifference(s)
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
if (devicechanged['GPIO15'] == 'Off')
then
sWaterUsageTot = (sWaterUsage + 1)
print("Water usage is set to " .. sWaterUsageTot / 1000 .. "m3 ");
commandArray['UpdateDevice'] = '16|0|'..sWaterUsageTot..''
else
-- Keep a live device
if (timedifference(otherdevices_lastupdate["Water"]) > 300)
then
print("Water usage is still " .. sWaterUsage / 1000 .. "m3 ");
commandArray['UpdateDevice'] = '16|0|'..sWaterUsage..''
end
end
return commandArray
Users browsing this forum: Google [Bot] and 1 guest