[OBIS V2] - Jetzt auch mit SML-Unterstützung

Begonnen von Icinger, 08 April 2016, 19:54:44

Vorheriges Thema - Nächstes Thema

rimjim

Danke für die schnelle Antwort.
Könntest du mir bitte bei dem UserReading helfen?
Bin da leider noch nicht so weit.

Gruß
Rimjim

Icinger

Aus der commandref:
Zitatdifference: das Reading wird auf die Differenz zw. dem aktuellen und dem vorherigen Wert gesetzt.
differential: das Reading wird auf die Differenz zw. dem aktuellen und dem vorherigen Wert, geteilt durch die Sekunden zw. der aktuellen Zeit und der letzten Auswertung, sekundengenau. Kein Wert wird berechnet, falls der Unterschied unter eine Sekunde liegt.

Also zB:

attr Heizung_Stromzaehler userReadings Verbrauch:total_consumption_Ch1 differential {ReadingsVal("Heizung_Stromzaehler","total_consumption_Ch1",0)}

ACHTUNG: Ungetestet, da ich noch nie mit dem diff-Modifier gearbeitet habe.

Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

willybauss

Schau Dir in der CommandRef zu UserReadings die Option "differential" an. Damit geht's, musst hat ein passendes Ausleseintervall definieren. Bei mir ist das so ungefähr:

attr Hausstrom_Zaehler userReadings P_Bezug_temp:total_consumption_Ch1.* differential { ReadingsVal("Hausstrom_Zaehler","total_consumption_Ch1",0)*3600000 }, \
P_Bezug_Watt:P_Bezug_temp.* { sprintf("%.0f",ReadingsVal("Hausstrom_Zaehler","P_Bezug_temp",0)) }, \
...


Die erste Zeile (P_Bezug_temp) berechnet die Leistung, gibt das Ergebnis aber mit zig Nachkommastellen aus. Deshalb wird in der zweiten Zeile (P_Bezug_Watt) gerundet. Nur der gerundete Wert kommt ins Logfile.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

rimjim

Guten Abend,

danke für die Hilfe !!!

ich habe mich noch ein wenig durchgekämpft, letztendlich hat es wie folgt funktioniert.
Verbrauch differential {ReadingsVal("Zaehler_Heizung","total_consumption_Ch1",0)}


Leider hab ich das mit dem Runden jedoch nicht hinbekommen, habe alles mögliche ausprobiert

Gruß
Rimjim

Watt

#559
Hallo liebe Leute,

ich Habe 2 Siemens TD-3511 Zähler welche in Österreich verschlüsselt sind, und würde sie auch gerne mit diesem tollen ObisModul auslesen können.

ich habe Versucht im ObisModul den Zähler E110 abzuwandeln für meinen:
my %devs= (
#   Name,      Init-String,                 interval,  2ndInit
    "none" => ["",                        -1,    ""],
    "Unknown" => ["",                        -1,    ""],
    "SML" => ["",                        -1,    ""],
    "Ext" => ["",                        -1,    ""],
    "Standard" => ["",                        -1,    ""],
    "VSM102" => ["/?!".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)],
    "E350USB" =>  ["/?!".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)],
    "AS1440" => ["/2!".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)],
    "E110" => ["/?3F322211F1E873A66382248779777822!CRLF".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)]
    );


jedoch bekomme ich folgende Fehlermeldungen :
2018.08.09 13:34:32 1: PERL WARNING: Smartmatch is experimental at ./FHEM/47_OBIS.pm line 472, <$fh> line 98.
2018.08.09 13:34:32 1: PERL WARNING: main::OBIS_decodeTL() called too early to check prototype at ./FHEM/47_OBIS.pm line 785, <$fh> line 98.
2018.08.09 13:34:33 3: Opening myPowerMeter device /dev/ttyUSB0
2018.08.09 13:34:33 3: Setting myPowerMeter serial parameters to 9600,8,N,1
2018.08.09 13:34:33 3: Init done
2018.08.09 13:34:33 3: myPowerMeter device opened


Obwohl ich dem Zähler mit "define myPowerMeter OBIS /dev/ttyUSB0@9600,7,E,1 E110" definiere.

Die Zeichenkette in der Init zwischen ? und ! ist so ähnlich wie mein Schlüssel (bei mir steht natürlich der richtige drinnen, aber die Länge stimmt) und CRLF braucht mein Zähler laut Datenblatt als Abschlusszeichen (ohne CRLF bekomme ich die selben Fehler).

ich schätze mein Passwort ist zu lang und muss seperat übergeben werden kann mir da bitte jemand helfen?

ich liebe FHEM quasi aber ich habe den Volkszähler am selben Gerät laufen und der schmiert leider immer wieder mal ab. (ich habe den vzlogger natürlich beendet)

Danke
lg Johannes

FunkOdyssey

Weiß zufällig jemand, ob man mit OBIS bei einem EasyMeter Zweirichtungszähler auch beide Richtungen auslesen kann?
Liegt im JSON auch die erzeugte Energie vor?

Icinger

@Watt:
2018.08.09 13:34:32 1: PERL WARNING: Smartmatch is experimental at ./FHEM/47_OBIS.pm line 472, <$fh> line 98.
2018.08.09 13:34:32 1: PERL WARNING: main::OBIS_decodeTL() called too early to check prototype at ./FHEM/47_OBIS.pm line 785, <$fh> line 98.
2018.08.09 13:34:33 3: Opening myPowerMeter device /dev/ttyUSB0
2018.08.09 13:34:33 3: Setting myPowerMeter serial parameters to 9600,8,N,1
2018.08.09 13:34:33 3: Init done
2018.08.09 13:34:33 3: myPowerMeter device opened

Ich seh da keine Fehlermeldung, sondern nur ein Warning.
Das kommt manchmal vor, wenn Perl das Modul grade neu lädt, aber in diesem moment schon Daten reinkommen.
Keine Bange ab dem nächsten Interval sollte es problemlos laufen.

@FunkOdyssey:
Wenn das Easymeter die Daten sendet, wertet das Modul diese auch aus.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

pejonp

@Watt

Ich habe auch einen TD3511. Mit dem obis-modul habe ich es mal versucht und nicht zum Laufen bekommen, da der TD3511 zu erst mit 300 baud und einer Zeichenfolge beginnt und dann kann man auf 9600 -19200 baud umschalten, mit der nächsten Zeichenfolge. Ich habe mir dafür ein extra perlmodul gebaut was die Daten ausliest und in eine MySQL db schreibt auf die ich über fhem zugreife.

Pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Watt

Hallo,

leider funktioniert es trozdem nicht und ich vermute immer noch Stark dass es an dem Passwort liegt.

kann mir bitte Jemand sagen wo die Zählerdaten entschlüsselt vorliegen sollten (ich schätze in OBIS_Parse) und wie ich mir $hash oder $buf ausprinten kann um zu sehen was vom Zähler ankommt?

Ich schätze es sind globale Strukturen aber ohne zu wissen wie die aussehen kann ich sie leider nicht ausgeben.

oder hat jemand ne andere Idee wie ich da debuggen könnte und wo sollten die Daten normalerweise ankommen?
ich hab hald folgendes Filelog eingerichtet, aber da wird nur das "Version: SAT63511D01546005085" hineingeschrieben.
define VZ.Log FileLog ./log/vz-%Y-%m.log (myPowerMeter.*)

@Pejonp
Ja ich habe dein DT3511 Modul auch schon probiert aber wie gesagt ich muss ein Passwort übergeben und ich weiß nicht an welcher stelle ich die Übergabe machen muss (ausserdem bevorzuge ich Logfiles vor einer Datenbank).

Danke schon mal sry wenn ich nerve aber ich will unbedingt meine Zähler endlich auch nur mit FHEM auslesen können, und ich bin leider gerade nicht mehr so am ball mim progen.
Vielen Dank
lg Watt

Omega-5

Zitat von: Watt am 09 August 2018, 14:27:03
Hallo liebe Leute,
...
ich habe Versucht im ObisModul den Zähler E110 abzuwandeln für meinen:

    "E110" => ["/?3F322211F1E873A66382248779777822!CRLF".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)]
    );


Hallo,

da hast du was das CRLF angeht etwas falsch verstanden. Damit sind die Steuerzeichen chr(13) und chr(10) gemeint, und die sind ja schon hinter dem Password vorhanden.

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

Watt

Ja danke ich habs ohne "CRLF" auch probiert, funktioniert aber auch nicht.

aber vl verstehe ich wirklich noch nicht ganz wo die Daten ausgegeben werden, vl funktioniert ja alles aber ich lese die werte nicht aus.

lg

Icinger

Wie wärs denn einfach mal mit einem V5-Log?
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Watt

Hallo, im Anhang ist mein V5-Log.

ich habe nun noch einmal mit unterschiedlichen Übergabewerten, getestet leider ohne Erfolg, in meinem Obis Logfile landen Leider nur CONNECTED/DISCONNECTED.

Und im Modul selbst werde auch keine Readings aufgelistet.

Danke
Lg Watt

haneub

Hallo,
ich lese einen Stromzähler mit einem USB-Modul aus. Der schickt die Daten extrem häufig, daraufhin habe ich den Polling-Modus eingeschaltet (mit 60s interval)
Nun habe ich manchmal einen zeitverzug von 10min in den Daten?
Hab mal ein Bild angehängt. Im Bild sieht man es recht deutlich:
Die dünne Linie kommt vom Wechselrichter und zeigt einen PV-Einbruch durch eine Wolke um 13:30. Der etwas dickere ist der Zähler und zeigt den Einbruch um 13:40?
Meine Berechnung des Strombedarfs (gelbe Linie) wird dadurch falsch...
Wie finde ich raus, was da schiefläuft?
Herzlichen Dank, Harald

pejonp

@haneub

Du kannst mal versuchen das attr alignTime zu setzen. Einmal auf 00:00:00 und beim anderen auf 00:00:59.
vielleicht hilf es.

Pejonp

LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect