Ga naar inhoud


Ik krijg mijn meter (P1) half uitgelezen.


Aanbevolen berichten

Geplaatst:

Ik kan mijn meter uitlezen met het volgende commando;

 cu -l /dev/ttyUSB0 -s 9600 --parity=none

en dan krijg ik de volgende uitdraai iedere 10 seconden;

Connected.
!
/ISk5\2MT382-1004

0-0:96.1.1(5A424556303035313439383933303133)
1-0:1.8.1(12412.837*kWh)
1-0:1.8.2(08665.553*kWh)
1-0:2.8.1(03932.990*kWh)
1-0:2.8.2(08867.610*kWh)
0-0:96.14.0(0001)
1-0:1.7.0(0000.29*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(0999.00*kW)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()

 

Ik las mijn meter altijd (reeds 7 jaar) uit op mijn Raspberry en dat ging feilloos.

Nu heb ik de nodige Pythonfiles naar mijn Ubuntu server over gezet en

het programma genereert geen uitdraai. Ik krijg geen foutmeldingen maar

hij blijft in een loop zonder gegevens op te halen.

 

Mogelijk komt dat door de nieuwere? Pythonversie of de nodige modules.

 

Wie heeft een idee?

 

Veel regels zijn uncomment omdat mijn Growatt-inverter ook wordt uitgelezen

maar eerst wil ik de meter kunnen uitlezen alvorens ik mij op Growatt stort.

 

Hier het script;



#!usr/bin/python
#-*-coding: utf-8-*-
# MBSolget P1 Telegram Catch
# 

version = "v1.00"
import sys
import os
import os.path
import stat
import serial
import time
import datetime
import subprocess
import locale
import calendar
from sys import exit
from time import strftime
from datetime import datetime
from pyowm import OWM
from pymodbus.client.sync import ModbusSerialClient as ModbusClient

ad=0
ap=0
gd=0
gp=0
am=0
gm=0

###############################################################################################################
# Main program
###############################################################################################################
#Initialize
p1_telegram  = False
p1_timestamp = ""
p1_log       = True

tijd = time.strftime("%d.%m.%Y %H:%M")

#print date

#### gro = ModbusClient(method='rtu', port='/dev/Growatt', baudrate=9600, stopbits=1, parity='N', #### bytesize=8, timeout=2)
#### gro.connect()

#Set COM port config
ser          = serial.Serial()
ser.baudrate = 9600
ser.bytesize = serial.SEVENBITS
ser.xonxoff  = 1 # op 23-12-2014 0057 op 0 gezet, stond op 1
ser.rtscts   = 0
ser.timeout  = 8 # 27-6-2015 was 5
#ser.port     = "/dev/P1meter"
ser.port     = "/dev/ttyUSB0"
teller=0
#
#Open COM port
try:
    ser.open()
except:
    sys.exit ("Fout bij het openen van poort %s. "  % ser.name)

ser.flushInput()
ad=0
ap=0
gd=0
gp=0
am=0
gm=0
#ser.close() stond na regel 81
#P1 uitlezen
while p1_log:

    p1_line = ''
    try:
        p1_raw = ser.readline()
    except:
        sys.exit ("Fout bij het lezen van poort %s. " % ser.name )
#	ser.close()
        p1_line = p1_raw.strip()
        p1_str  = str(p1_raw).encode("utf-8")
        p1_line = p1_str.strip()
        if p1_line[0:1] == "/":
            p1_telegram = True
        elif p1_line[0:1] == "!":
            if p1_telegram:
                p1_telegram = False 
                p1_log      = False
#	    ser.close()
            if p1_telegram:
                if "1.8.1" in p1_line: ad= int(1000 * float(p1_line[10:19])) # ad= afgenomen dal
                if "1.8.2" in p1_line: ap= int(1000 * float(p1_line[10:19])) # ap= afgenomen piek
                if "2.8.1" in p1_line: gd= int(1000 * float(p1_line[10:19])) # gd= geleverd dal
                if "2.8.2" in p1_line: gp= int(1000 * float(p1_line[10:19])) # gd= geleverd piek
                if "1.7.0" in p1_line: am= int(1000 * float(p1_line[10:17])) # am= afgenomen nu
#        try:
#            ra = gro.read_input_registers(17,13)
#            data = str(ra.registers)
#            #gro.close()
#        except  AttributeError:
#            data = "0,0,0,0,0,0,0,0,0,0,0,0,0"
#            #gro.close()
        if "2.7.0" in p1_line: gm= int(1000 * float(p1_line[10:17])) # gm= geleverd nu

#Growatt data-afhandeling 
#### data = data.strip("[]")
#### data = data.replace(" ", "")
#### data = data.replace("0,0,0,0,0,0,0,0,0,", "")
#### k1= data.find(',', 0)
#### k2= data.find(',', k1+1)
#### k3= data.find(',', k2+1)
#### zo = int(float(data[0:k1])/10+.5)
#### da = int(float(data[k1+1:k2])*100)
#### To = int(float(data[k3+1:]))

#ge=zo+am-gm
#### data=str(tijd)+","+str(am)+","+str(gm)+","+str(ad)+","+str(ap)+","+str(gd)+","+str(gp)+","+str(zo)+","+str(da)+","+str(To)+","+str(ge)+ "\n"

data=str(tijd)+","+str(am)+","+str(gm)+","+str(ad)+","+str(ap)+","+str(gd)+","+str(gp)+ "\n"



f=open("log.txt", "a+",0)
f.write(data)
f.flush()
f.close()

 

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.


Geplaatst:

Welk programma gebruik je eigenlijk voor de uitlezing? Ik gebruik hier het gratis P1 monitor en dat werkt heel goed en probleemloos. Ik kan zelfs de buitentemperaturen van een naburig weerstation integreren.

Firefox_Screenshot_2021-02-27T08-13-53.399Z.png

Firefox_Screenshot_2021-02-27T08-13-23.639Z.png

Firefox_Screenshot_2021-02-27T08-12-59.080Z.png

VU+ Ultimo 4K PLI 9.x dual DVB-S2 FBC tuner met 750Gb WD Blue, VU+ Zero 4K PLI 9.x  Visiosat G4 Quadro met 3 Alps quad en 1 Inverto Ultra Black quad, LG G1 Oled Evo 77 inch, Sony Bravia KDL 65-XD7505, , Nvidia Shield TV Pro mediaplayer, Denon AVR-X3500 audioreceiver. Zone 1: 2X Kef IQ90, 2x Kef IQ10, Kef IQ60c, BK XXLS 400 subwoofer. Zone 2: 2X Tangent EVO4. Fritzbox 7590. Synology DS418, Raspberry Pi 3B

Geplaatst:
10 uren geleden, Donkeyman zei:

Welk programma gebruik je eigenlijk voor de uitlezing? Ik gebruik hier het gratis P1 monitor en dat werkt heel goed en probleemloos. Ik kan zelfs de buitentemperaturen van een naburig weerstation integreren.

 

 

 

Het programma zoals ik in code hier heb neergezet.

Python dus.

 

Met dit script lees ik niet alleen mijn P1 uit maar ook

mijn inverter. En dn kom je op de volgende waarden;

- afgenomen

- geleverd

- zonaandeel

 

Aan de hand hiervan genereer ik met Gnuplot

prachtige grafieken en houd ik mijn leverancier

in de gaten...

 

Zie ook de gegenereerde grafieken;

https://ccvd.eu/Energie.php

 

Uiteraard zie je dat de grafieken niet helemaal

bij zijn omdat ik een chrash heb gehad die ik

nu aan het oplossen ben.

 

Kortom, ik maak geen gebruik van diverse andere

mogelijkheden. Ik hou alles "privé".

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst:

Goed, de meter krijg ik weer uitgelezen.

 

Nu de Growatt nog.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst:

Con, dat ziet er inderdaad allemaal mooi uit. Succes!

VU+ Ultimo 4K PLI 9.x dual DVB-S2 FBC tuner met 750Gb WD Blue, VU+ Zero 4K PLI 9.x  Visiosat G4 Quadro met 3 Alps quad en 1 Inverto Ultra Black quad, LG G1 Oled Evo 77 inch, Sony Bravia KDL 65-XD7505, , Nvidia Shield TV Pro mediaplayer, Denon AVR-X3500 audioreceiver. Zone 1: 2X Kef IQ90, 2x Kef IQ10, Kef IQ60c, BK XXLS 400 subwoofer. Zone 2: 2X Tangent EVO4. Fritzbox 7590. Synology DS418, Raspberry Pi 3B

Geplaatst:

Ook de Growatt inmiddels uit de kast gekregen.

 

Kortom, alles draait weer, ben wél één maand kwijt.

Dus op basis van zonuren zal ik een inschatting

gaan maken om februari weer een realistisch

beeld te geven.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...