Ankündigung

Einklappen
Keine Ankündigung bisher.

Zählerabfrage als Wiregate Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • NightRacer
    antwortet
    Ich habe auch noch ein weiteres Problem mit dem script.
    Vielleicht 3-4x in der Woche habe ich von der aktuellen Leistung in W (16.7.0)
    Werte in Höhe von mehreren Millionen.
    Das sieht im RRD Diagramm natürlich ziemlich sch****e aus.

    Ich hab mal das .log angesehen und unten angehängt mit jeweils einem Lauf vor und nach dem Fehler.
    Offensichtlich interpretiert das script einen viel zu langen hex Wert.
    Jetzt weiß ich natürlich nicht wie das passiert.
    Man sieht aber das immer wenn der Fehler auftritt check sml value signature: Invalid datatype [8] hat.

    Könnte man nun nicht das script noch so erweitern das wenn der Fehler Invalid datatype [8] kommt man
    den Datensatz einfach verwirft?

    Vielleicht kann da coolrunnings etwas dazu sagen?


    Code:
    ===============================================
    Mon Nov 14 22:06:02 2016 Start new run
    Step 1 - Collect data
    Step 2 - Reg Exp 1 build dataset
    Step 3 - Analyze data
    -----------------------------------------------
    OBIS ID:     1.8.0
    OBIS search: 77070100010800FF
    found: 650000018201621E52FF590000000008304EC501
    check sml status:          [386]
    check sml value time:      [empty]
    check sml unit:            [30]
    check sml scaler:          [-1]
    check sml value:           [137383621]
    check sml value signature: [empty]
    Unit config: [kWh][cdg]
    Final value: [13738.3621 kWh]
    -- COUNTER ---
    obisname  zaehler_verbrauch
    value     13738.3621
    ----------
    rrdname   zaehler_verbrauch_5_c.rrd
    [13738.3621]*[5]*[60] = 4121508 countervalue
    ----------
    rrdname   zaehler_verbrauch_15_c.rrd
    [13738.3621]*[15]*[60] = 12364525 countervalue
    ----------
    rrdname   zaehler_verbrauch_60_c.rrd
    [13738.3621]*[60]*[60] = 49458103 countervalue
    ----------
    rrdname   zaehler_verbrauch_1440_c.rrd
    [13738.3621]*[1440]*[60] = 1186994485 countervalue
    -- DERIVE ---
    obisname  zaehler_verbrauch
    value     13738.3621
    ----------
    rrdname   zaehler_verbrauch_5_d.rrd
    [13738.3621]*[5]*[60] = 4121508 derivevalue
    ----------
    rrdname   zaehler_verbrauch_15_d.rrd
    [13738.3621]*[15]*[60] = 12364525 derivevalue
    ----------
    rrdname   zaehler_verbrauch_60_d.rrd
    [13738.3621]*[60]*[60] = 49458103 derivevalue
    ----------
    rrdname   zaehler_verbrauch_1440_d.rrd
    [13738.3621]*[1440]*[60] = 1186994485 derivevalue
    -- GAUGE --
    obisname  zaehler_verbrauch
    value     13738.3621
    rrdname   zaehler_verbrauch_g.rrd
    GA:8/4/0 value:13738.3621 DPT:14
    -----------------------------------------------
    OBIS ID:     16.7.0
    OBIS search: 77070100100700FF
    [B]found: 0101621B5200550000191701[/B]
    check sml status:          [empty]
    check sml value time:      [empty]
    check sml unit:            [27]
    check sml scaler:          [0]
    check sml value:           [6423]
    [B]check sml value signature: [empty][/B]
    Unit config: [W][g]
    Final value: [6423 W]
    -- GAUGE --
    obisname  zaehler_leistung
    value     6423
    rrdname   zaehler_leistung_g.rrd
    GA:8/4/3 value:6423 DPT:9
    ===============================================
    Mon Nov 14 22:07:01 2016 Start new run
    Step 1 - Collect data
    Step 2 - Reg Exp 1 build dataset
    Step 3 - Analyze data
    -----------------------------------------------
    OBIS ID:     1.8.0
    OBIS search: 77070100010800FF
    found: 650000018201621E52FF5900000000083052EB01
    check sml status:          [386]
    check sml value time:      [empty]
    check sml unit:            [30]
    check sml scaler:          [-1]
    check sml value:           [137384683]
    check sml value signature: [empty]
    Unit config: [kWh][cdg]
    Final value: [13738.4683 kWh]
    -- COUNTER ---
    obisname  zaehler_verbrauch
    value     13738.4683
    ----------
    rrdname   zaehler_verbrauch_5_c.rrd
    [13738.4683]*[5]*[60] = 4121540 countervalue
    ----------
    rrdname   zaehler_verbrauch_15_c.rrd
    [13738.4683]*[15]*[60] = 12364621 countervalue
    ----------
    rrdname   zaehler_verbrauch_60_c.rrd
    [13738.4683]*[60]*[60] = 49458485 countervalue
    ----------
    rrdname   zaehler_verbrauch_1440_c.rrd
    [13738.4683]*[1440]*[60] = 1187003661 countervalue
    -- DERIVE ---
    obisname  zaehler_verbrauch
    value     13738.4683
    ----------
    rrdname   zaehler_verbrauch_5_d.rrd
    [13738.4683]*[5]*[60] = 4121540 derivevalue
    ----------
    rrdname   zaehler_verbrauch_15_d.rrd
    [13738.4683]*[15]*[60] = 12364621 derivevalue
    ----------
    rrdname   zaehler_verbrauch_60_d.rrd
    [13738.4683]*[60]*[60] = 49458485 derivevalue
    ----------
    rrdname   zaehler_verbrauch_1440_d.rrd
    [13738.4683]*[1440]*[60] = 1187003661 derivevalue
    -- GAUGE --
    obisname  zaehler_verbrauch
    value     13738.4683
    rrdname   zaehler_verbrauch_g.rrd
    GA:8/4/0 value:13738.4683 DPT:14
    -----------------------------------------------
    OBIS ID:     16.7.0
    OBIS search: 77070100100700FF
    [B]found: 0101621B52005500E0554080468640D750B0B09CB0D0010101018302785604BC43DAC700FB275C4B7E52A5B7CE8214BE833FA253B599E4168140F04E3D47AF1F46458DD66AFC8D1C1697167701010163651800760508675B6B6200620072630201710163E69B001B1B1B1B1A0046281B1B1B1B01010101760508675B6C62006200726301017601010502CD1E780B0649534B0109770B79F4010163304000760508675B6D620062007263070177010B0649534B0109770B79F4070100620AFFFF72620165046251557777078181C78203FF010101010449534B01[/B]
    check sml status:          [empty]
    check sml value time:      [empty]
    check sml unit:            [27]
    check sml scaler:          [0]
    check sml value:           [14701888]
    [B]check sml value signature: Invalid datatype [8][/B]
    Unit config: [W][g]
    [B]Final value: [14701888 W][/B]
    -- GAUGE --
    obisname  zaehler_leistung
    value     14701888
    rrdname   zaehler_leistung_g.rrd
    GA:8/4/3 value:14701888 DPT:9
    ===============================================
    Mon Nov 14 22:08:02 2016 Start new run
    Step 1 - Collect data
    Step 2 - Reg Exp 1 build dataset
    Step 3 - Analyze data
    -----------------------------------------------
    OBIS ID:     1.8.0
    OBIS search: 77070100010800FF
    found: 650000018201621E52FF59000000000830572301
    check sml status:          [386]
    check sml value time:      [empty]
    check sml unit:            [30]
    check sml scaler:          [-1]
    check sml value:           [137385763]
    check sml value signature: [empty]
    Unit config: [kWh][cdg]
    Final value: [13738.5763 kWh]
    -- COUNTER ---
    obisname  zaehler_verbrauch
    value     13738.5763
    ----------
    rrdname   zaehler_verbrauch_5_c.rrd
    [13738.5763]*[5]*[60] = 4121572 countervalue
    ----------
    rrdname   zaehler_verbrauch_15_c.rrd
    [13738.5763]*[15]*[60] = 12364718 countervalue
    ----------
    rrdname   zaehler_verbrauch_60_c.rrd
    [13738.5763]*[60]*[60] = 49458874 countervalue
    ----------
    rrdname   zaehler_verbrauch_1440_c.rrd
    [13738.5763]*[1440]*[60] = 1187012992 countervalue
    -- DERIVE ---
    obisname  zaehler_verbrauch
    value     13738.5763
    ----------
    rrdname   zaehler_verbrauch_5_d.rrd
    [13738.5763]*[5]*[60] = 4121572 derivevalue
    ----------
    rrdname   zaehler_verbrauch_15_d.rrd
    [13738.5763]*[15]*[60] = 12364718 derivevalue
    ----------
    rrdname   zaehler_verbrauch_60_d.rrd
    [13738.5763]*[60]*[60] = 49458874 derivevalue
    ----------
    rrdname   zaehler_verbrauch_1440_d.rrd
    [13738.5763]*[1440]*[60] = 1187012992 derivevalue
    -- GAUGE --
    obisname  zaehler_verbrauch
    value     13738.5763
    rrdname   zaehler_verbrauch_g.rrd
    GA:8/4/0 value:13738.5763 DPT:14
    -----------------------------------------------
    OBIS ID:     16.7.0
    OBIS search: 77070100100700FF
    found: 0101621B5200550000190A01
    check sml status:          [empty]
    check sml value time:      [empty]
    check sml unit:            [27]
    check sml scaler:          [0]
    check sml value:           [6410]
    check sml value signature: [empty]
    Unit config: [W][g]
    Final value: [6410 W]
    -- GAUGE --
    obisname  zaehler_leistung
    value     6410
    rrdname   zaehler_leistung_g.rrd
    GA:8/4/3 value:6410 DPT:9
    ===============================================

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    Zitat von heckmannju Beitrag anzeigen
    Ne ich wollte eigentlich wissen wie lange eine Zählerauslesung geht in s bei 9600 Baud und wie lange bei 300 Baud.
    Wo/wie kann ich denn rauslesen wie lange eine Zählerauslesung benötigt?



    Einen Kommentar schreiben:


  • heckmannju
    antwortet
    Zitat von NightRacer Beitrag anzeigen
    Also die dauer wie lange das skript gut läuft ist wie gesagt total unterschiedlich, mal drei Tage, dann wieder keine 24h bevor es wieder abkackt.
    Baudrate und sonstige kommunikationsparameter sind laut Technischer Beschreibung des Zählers eingestellt. (9600Bd, 8 DataBits, 1 StopBit, Paryty None)
    Ich hab ja kein WG, das skript läuft auf nem RasPi, logs hab ich angesehen, das sml_log hab ich oben gepostet, das steht dann irgendwann nur noch "killed" drin...
    ohohoh jetzt kommt gleich wieder Stefan und sagt das du auf dein Wording achten musst :-) Ne ich wollte eigentlich wissen wie lange eine Zählerauslesung geht in s bei 9600 Baud und wie lange bei 300 Baud. Bei mir geht manchmal umschaltung auf 9600 Baud nicht dann wird langsam mit 300 Baud ausgelesen. Deswegen habe ich bei mir in Callidomus eine Semaphore drum herum gebaut. Das Script auf dem Wiregate hat bei mir im 5min abstand recht zuverlässig funktioniert.

    Vg
    Jürgen

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    Also die dauer wie lange das skript gut läuft ist wie gesagt total unterschiedlich, mal drei Tage, dann wieder keine 24h bevor es wieder abkackt.
    Baudrate und sonstige kommunikationsparameter sind laut Technischer Beschreibung des Zählers eingestellt. (9600Bd, 8 DataBits, 1 StopBit, Paryty None)
    Ich hab ja kein WG, das skript läuft auf nem RasPi, logs hab ich angesehen, das sml_log hab ich oben gepostet, das steht dann irgendwann nur noch "killed" drin...

    Einen Kommentar schreiben:


  • heckmannju
    antwortet
    Und wie lange geht das bei dir normalerweise? Nutzt du eine höhere Baudrate? Hast du schon mal in die Logs vom WG gesehen?
    Zuletzt geändert von heckmannju; 30.09.2016, 15:12.

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    minütlich per cron

    Einen Kommentar schreiben:


  • heckmannju
    antwortet
    Ich schätze das sich deine scripts überholen wie oft lässt du sie den laufen?

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    Hi Leut,

    leider muss ich berichten das dieses oben beschriebene Verhalten nun doch wieder auftritt.
    ich habe unten mal einen screenshot angehängt (htop...cooles programm) da sieht man ganz schön was da passiert.
    up time des raspi war 3 Tage 7 Stunden.

    der Speicher ist dann voll am Anschlag, die CPU ist auch voll am rödeln und der prozess /usr/bin/perl /var/www/sml/sml_meter.pl läuft weit über 100 mal.

    Hat jemand ne Idee von was das kommen kann, bzw. wie man das verhalten verhindern kann?

    Wie gesagt, das läuft mal 3 Tage tadelos, dann aber auch wieder nur weniger als 24h.
    ein restart des raspi hilft dann erst mal,...bis zum nächsten mal


    beste Grüße

    Michael
    htop_2.jpg
    htop_1.jpg




    sml_log.jpg

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    TOP!

    Einen Kommentar schreiben:


  • heckmannju
    antwortet
    Zitat von NightRacer Beitrag anzeigen
    Frage: hat jemand einen USB oder RS232 IR-Kopf für die Frontschnittstelle über? eventuell auch erst mal leihweise zum testen ob da vorne überhaupt mehr
    raus kommt als hinten. Oder mit einen Tip wo es solche Köpfe in der gleichen Preisklasse wie vom Udo zu haben gibt?
    http://shop.weidmann-elektronik.de/i...roduct&info=24

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    Zitat von nipponichi Beitrag anzeigen
    Ich habe einen EMH eZH-I. Das Script entspricht weitgehend dem aus #429.

    Danke dir nipponichi für den Hinweise auf das Skript.
    Dieses scheint nun bei mir zu funktionieren ohne das der Pi nach einer Zeit überläuft.

    Also nochmal für alle mit einem ISKRA MT681 bzw. einem gleichen/ähnlichen SML Zähler: das Skript von coolrunnings sollte funktionieren.


    Aktuell lese ich den Zähler über die rückwärtige MSB Schnittstelle aus (weils schöner ist und der Lesekopf schon im Sockel verbaut war).
    Leider stellt die MSB Schnittstelle nur den OBIS 1.8.0 , also den Gesamtzählerstand zur Verfügung.

    Nun würde ich gerne testen ob die INFO Schnittstelle auf der Vorderseite vielleicht mehr Infos raus gibt.
    Leider nimmt der Udo von volkszähler.org grade keine Bestellungen mehr für die IR-Köpfe an.

    Frage: hat jemand einen USB oder RS232 IR-Kopf für die Frontschnittstelle über? eventuell auch erst mal leihweise zum testen ob da vorne überhaupt mehr
    raus kommt als hinten. Oder mit einen Tip wo es solche Köpfe in der gleichen Preisklasse wie vom Udo zu haben gibt?


    beste Grüße

    Michael

    Einen Kommentar schreiben:


  • nipponichi
    antwortet
    Ich habe einen EMH eZH-I. Das Script entspricht weitgehend dem aus #429.

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    Zitat von nipponichi Beitrag anzeigen
    Ich habe einen eHZ oder wie das Ding immer heißt. Ja, seit zwei jahren keine Probleme mehr, wobei ich allerdings auch selten draufgucke. Nach ein paar Wochen wird es halt langweilig.
    Vielen Dank für die Antwort,

    Mein Problem ist grade eben das ich nicht nachvollziehen kann ob das .pl script auf
    https://github.com/OpenAutomationPro...ster/sml-meter
    überhaupt die letzte funktionierende Version darstellt.
    Ich habe diesen Thread jetzt zwar nahezu vollständig durch, wenn man an der Entwicklung
    aber nicht direkt beteiligt war ist es natürlich nicht einfach auf den 34 Seiten durchzusteigen.
    Vor allem weil es ja immer wieder um verschiedene Zählertypen ging... sml, d0, ...usw.

    @nipponichi : kannst du mir bitte kurz mitteilen was für einen Zähler genau du hast und mir eventuell dein funktionierendes script schicken

    Einen Kommentar schreiben:


  • nipponichi
    antwortet
    Ich habe einen eHZ oder wie das Ding immer heißt. Ja, seit zwei jahren keine Probleme mehr, wobei ich allerdings auch selten draufgucke. Nach ein paar Wochen wird es halt langweilig.

    Einen Kommentar schreiben:


  • NightRacer
    antwortet
    Ja, irgend so was wird's schon sein.
    Nur wie lässt sich das vermeiden.
    Von nem anderen User hab ich noch ein kill_sml_meter script bekommen, welches anscheinend das sml_meter.pl erst killt und dann erneut startet
    um zu vermeiden das es mehrfach läuft bzw. aufgerufen wird.
    leider ohne Erfolg.

    @nipponichi was für einen Zähler hast du denn? funktioniert die Abfrage bei dir?

    Einen Kommentar schreiben:

Lädt...
X