[Python] Script "installeren"/draaien

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 01:51
Wie kan mij helpen met het volgende probleem:
Ik heb twee jaar geleden het uitlezen van mij watermeter geïnstalleerd op een RPi 3B met debian er op. Ik heb daarvoor deze instructie gebruikt: https://ehoco.nl/watermet...n-domoticz-python-script/
Achtergrond info
Dat werkte perfect tot gisteravond. Rond middernacht was ineens de widget van de watermeter verdwenen. Voorafgaand hieraan had ik de avond ervoor twee extra RFX meter devices aangemaakt om de dagproductie van mijn Warmtepomp door te sturen naar Influx en Grafana. Om middernacht werd de waarde op die devices ververst, en het lijkt er op dat op hetzelfde moment het watermeterdevice verdwenen is.
Ik heb onderstaand het script enkele keren handmatig laten runnen vanuit Thonny maar krijg steeds een foutmelding.
Wat ik al geprobeerd heb
Ik heb al een nieuw device aangemaakt met een ander idx nummer en het idx nummer in het script aangepast. Zelfde fout (regel 61). De foutmelding zegt mij echter niets. (niet thuis in python). Wie weet het wel?

code:
1
2
3
4
5
6
7
8
Python 3.5.3 (/usr/bin/python3)
>>> %Run watermeter.py
Traceback (most recent call last):
  File "/home/pi/domoticz/scripts/watermeter.py", line 61
    print "JSON call = "+ str(url1)
                       ^
SyntaxError: invalid syntax
>>>


Dit is de volledige code
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
69
70
71
72
73
#!/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_water.txt is)
global Counter
Counter = 881280

#Domoticz URL
domoticz_url = "http://192.168.2.9:8080"
#Domoticz IDX van de water sensor (RFXMeter)
idx = 318

#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_water.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 40
GPIO.setmode(GPIO.BOARD)
# Set GPIO 21 (Pin 40) als Input aditioneel als Pullup-Weerstand aktiveren
GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

#Functie  callback
#Dit is de functie die aangeroepen wordt in de interrupt
def Interrupt(channel):
    print('Callback function called!')
    time.sleep(0.05)         # need to filter out the false positive of some power fluctuation
    if GPIO.input(40) == 0:
       print('quitting event handler because this was probably a false positive')
       return
    #Teller elke interrupt uitlezen en met 0.5 liter verhogen (deler watermeter op 10 zetten)
    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&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, sensor geeft een 0 en en bij detectie een 1
#Bij detectie een 1 daarom check stijgende interrupt.
GPIO.add_event_detect(40, GPIO.RISING, callback = Interrupt, bouncetime = 200)

try:
    while True:
      time.sleep(0.2)        
except KeyboardInterrupt:
  GPIO.cleanup()
  print "\nBye"

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Ik denk dat je van Python 2 naar Python 3 bent gegaan. Je kunt weer Python 2 gebruiken, of https://python-future.org/compatible_idioms.html volgen om je code om te zetten.

Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 01:51
GlowMouse schreef op maandag 16 maart 2020 @ 21:53:
Ik denk dat je van Python 2 naar Python 3 bent gegaan. Je kunt weer Python 2 gebruiken, of https://python-future.org/compatible_idioms.html volgen om je code om te zetten.
Hoe kom ik daar achter?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Je zou de apt logs eens kunnen inspecteren.

Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 01:51
GlowMouse schreef op maandag 16 maart 2020 @ 22:04:
[...]

Je zou de apt logs eens kunnen inspecteren.
Sorry, ik weet nog helemaal niets van Python. Waar staan die?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 01:51
@GlowMouse Opgelost. Nieuwe RFX meter aangemaakt => script leeg gemaakt => oorspronkelijke script aangepast naan mijn IP en idx => script teruggekopieerd en opgeslagen => Rpi reboot en voilà hij doet het weer. Maar het blijft allemaal vreemd :?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
@Copitano Ik weet niet waarom je in [Python] Script "installeren"/draaien postte, maar dergelijke 'topickaping' is niet nodig ;) Zeker niet als je "reactie" een volwaardige topicstart is. Gelieve volgende keer dan ook gewoon je eigen topic te maken ;) Als je nog een voorstel hebt voor een betere topictitel dan verneem ik dat graag, pas ik 'm voor je aan ;)

[ Voor 16% gewijzigd door RobIII op 17-03-2020 11:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 01:51
RobIII schreef op dinsdag 17 maart 2020 @ 11:27:
@Copitano Ik weet niet waarom je in [Python] Script "installeren"/draaien postte, maar dergelijke 'topickaping' is niet nodig ;) Zeker niet als je "reactie" een volwaardige topicstart is. Gelieve volgende keer dan ook gewoon je eigen topic te maken ;) Als je nog een voorstel hebt voor een betere topictitel dan verneem ik dat graag, pas ik 'm voor je aan ;)
Sorry, was niet mijn bedoeling om iets te kapen, maar leek mijn de juist plaats om mensen te bereiken die mij konden helpen. Ben nog niet zo thuis in wanneer je zelf een topic moet maken of in een bestaande je vraag kan stellen. Nogmaals mijn welgemeende excuus ;)
Ehhh, topic naam "RFX meter" watermeter widget verdwenen

[ Voor 3% gewijzigd door Copitano op 17-03-2020 11:46 ]

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp

Pagina: 1