Adapter "smartmeter"

Forum für Ideen, wie ioBroker verbessert werden kann
Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 17.02.2018, 11:18

Wenn’s mal da war Kammes nicht verschwinden ;-) mal Objekte reloaden (button mit zwei Pfeilen im Kreis) und auch die Filter checken die ggf gesetzt sind.
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

hopser2000
Beiträge: 5
Registriert: 16.02.2018, 20:23

Re: Adapter "smartmeter"

Beitrag von hopser2000 » 17.02.2018, 11:57

MichaelJaD hat geschrieben:Screenshot 2018-02-17 10.55.35.png
Hab den Adapter nochmal komplett neu installiert, Pi neu gestartet, und mit den Einstellungen von Micha konfiguriert. Jetzt klappt alles suuuper! Abfrageintervall hab ich auf 60s gestellt.

Vielen Dank für eure Unterstützung! Echt genial

bongo22@gmx.de
Beiträge: 4
Registriert: 28.02.2018, 21:45

Re: Adapter "smartmeter"

Beitrag von bongo22@gmx.de » 28.02.2018, 21:54

Hallo zusammen,

ich habe mir vor kurzem ioBroker installiert und bin eigentlich sehr begeistert.
Nur leider habe ich ein Problem mit dem Auslesen meines Easymeters.
Ich habe zwei Stück verbaut.
Das erste ist für die Solaranalage und hat die Bezeichung Q3CA1261 Diesen kann ich auslesen.
Der zweite ist der Hausstrom und hat die Bezeichung Q3CA1181. Hier ist kein Auslesen möglich.

Es wird eine Fehlermeldung generiert. Ich habe einen Auszug des Logs als Datei angehängt.
Beide Smartmeter lassen sich einwandfrei mit dem Volkszähler auslesen.

Ich hoffe ihr könnt mir hier weiter helfen. Danke schon mal.
Matthias
Dateianhänge
IobrokerSmartmeter.txt
Log
(2.98 KiB) 30-mal heruntergeladen

RappiRN
guru
Beiträge: 1072
Registriert: 22.02.2017, 16:31
Wohnort: Rathenow

Re: Adapter "smartmeter"

Beitrag von RappiRN » 28.02.2018, 22:21

Ich kann zwar die Fehlermeldungen nicht deuten, aber könntest du bitte mal die Einstellungen der Adapter posten sowie deine Anschlüsse und die Hardware beschreiben?

Enrico
Auch wenn unter meinem Benutzernamen jetzt "guru" steht, ich bin leider keiner, versuche aber zu helfen wo es geht. :D

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 28.02.2018, 22:45

bongo22@gmx.de hat geschrieben: Der zweite ist der Hausstrom und hat die Bezeichung Q3CA1181. Hier ist kein Auslesen möglich.

Es wird eine Fehlermeldung generiert. Ich habe einen Auszug des Logs als Datei angehängt.
Beide Smartmeter lassen sich einwandfrei mit dem Volkszähler auslesen.
Jupp, da scheint der Zählerhersteller mal wieder entweder eigene Feldtypen zu nutzen die nicht offiziell definiert sind. Ich schaue die Tage mal rein, hab aber noch ein anderes Projekt was ich erst abschliessen will.

Was ich brauche ist bitte das "vollständige Log" aus dem Logfile was unter /opt/iobroker/log/... liegt. Du hast denke aus dem Admin kopiert, da ist es abgeschnitten! Bitte hier posten oder mir als PN schicken. Die Zeilen mit "Error while parsing SML message" sind die interessanten

Melde mich wenn ich was zum testen hab.
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

bongo22@gmx.de
Beiträge: 4
Registriert: 28.02.2018, 21:45

Re: Adapter "smartmeter"

Beitrag von bongo22@gmx.de » 01.03.2018, 19:48

Vielen Dank schon mal für die schnelle Anwort.

Hier der Log mit dem vollständigen Error.
Dateianhänge
smartmeter.log
(384.15 KiB) 30-mal heruntergeladen

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 02.03.2018, 09:31

Grund gefunden ... Schaue es mir die Tage genauer an
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

bahnuhr
professional
Beiträge: 925
Registriert: 11.10.2016, 19:18
Wohnort: Eichenzell

Re: Adapter "smartmeter"

Beitrag von bahnuhr » 02.03.2018, 14:43

Hallo,

ich muss das Thema "Strom" bei mir nun auch mal angehen.

Folgende Zähler habe ich (2x; für Photovoltaik und der "Normale" für Einspeisung und Verbrauch)
Strom.JPG
Auf Seite 1 steht von Apollon:
du kannst:
a) Tastkopf an PI mit zweiten iobroker Instanz im Keller
b) Tastkopf an PI mit Volkszähler Instanz im Keller
b) Tastkopf an PI mit einen Script im Keller
deine iobroker Instanz fragt dann entweder a), b) oder c) ab und speichert die Werte.
Ich ziehe die mehr-instanzen iobroker Variante vor. Dann ist die Ressourcenverteilung besser gelöst.
Ich beabsichtige einen Raspi einzusetzen; Lan ist vorhanden. iob läuft bei mir auf Windows 7 (auf Laptop)

Folgende Fragen dazu:
- Was ist sinnvoller bzw. einfacher?
io Instanz oder Volkszähler Instanz
- Wo bekommt man diesen Lese/Schreibkopf her ?
Der Ansprechpartner auf der Volkszähler Seite reagiert bisher auf meine Mails noch nicht.

Danke im Voraus.

mfg
Dieter

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 02.03.2018, 15:13

bongo22@gmx.de hat geschrieben:Vielen Dank schon mal für die schnelle Anwort.

Hier der Log mit dem vollständigen Error.
So, bitte mal Smartmeter vom Github installieren. Bitte vorher sicherstellen das "git" nstalliert ist weil ich testweise eine Library direkt aus dem Github lade. ist aktuell die 1.1.1 ...

Diese sollte deinen Zweiten Zähler unterstützen (und den ersten auch noch :.)) )

Wer mit Testen will ist gern eingeladen.
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 02.03.2018, 15:15

bahnuhr hat geschrieben:Folgende Zähler habe ich (2x; für Photovoltaik und der "Normale" für Einspeisung und Verbrauch)
Sollte gehen, Hatte glaube schon jemand. Ansonsten kriegen wir das hin :-)
bahnuhr hat geschrieben: Folgende Fragen dazu:
- Was ist sinnvoller bzw. einfacher?
io Instanz oder Volkszähler Instanz
ioBroker natürlich ;-))
bahnuhr hat geschrieben: - Wo bekommt man diesen Lese/Schreibkopf her ?
Der Ansprechpartner auf der Volkszähler Seite reagiert bisher auf meine Mails noch nicht.
Das ist blöd. Der Kopf ist sehr gut und günstig. ANsonsten gehen faktisch auch andere USB-IR-Leseköpfe
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

darkiop
professional
Beiträge: 137
Registriert: 02.02.2018, 22:16

Re: Adapter "smartmeter"

Beitrag von darkiop » 02.03.2018, 17:43

Grüße Thorsten

bahnuhr
professional
Beiträge: 925
Registriert: 11.10.2016, 19:18
Wohnort: Eichenzell

Re: Adapter "smartmeter"

Beitrag von bahnuhr » 02.03.2018, 18:01

ok, hab mir bei ebay 2 von diesen bei gleichem Versender mal gekauft.

Mal schauen wann die Teile kommen.


mfg
Dieter

bongo22@gmx.de
Beiträge: 4
Registriert: 28.02.2018, 21:45

Re: Adapter "smartmeter"

Beitrag von bongo22@gmx.de » 02.03.2018, 20:38

apollon77 hat geschrieben: So, bitte mal Smartmeter vom Github installieren. Bitte vorher sicherstellen das "git" nstalliert ist weil ich testweise eine Library direkt aus dem Github lade. ist aktuell die 1.1.1 ...

Diese sollte deinen Zweiten Zähler unterstützen (und den ersten auch noch :.)) )

Wer mit Testen will ist gern eingeladen.
Sorry wenn ich jetzt als Anfänger da stehe. git habe ich installiert.
Wie installiere ich jetzt die Version 1.1.1 von Github direkt?

sudo npm install https://github.com/Apollon77/ioBroker.smartmeter
installiert erst und bricht dann ab mit:

npm WARN enoent ENOENT: no such file or directory, open '/home/iobroker/package.json'
npm WARN iobroker No description
npm WARN iobroker No repository field.
npm WARN iobroker No README data
npm WARN iobroker No license field.

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 02.03.2018, 23:33

Was kommt bei

Code: Alles auswählen

node -v
npm -v
?!

Ansonsten gehst Du im Admin auf "Custom Install" und wählst dort smartmeter aus der Liste aus. Das ist der einfachste Weg.
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 06.03.2018, 13:28

@bongo22@gmx.de ... Any more feedback?
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

schneidy76
professional
Beiträge: 139
Registriert: 01.05.2017, 18:57

Re: Adapter "smartmeter"

Beitrag von schneidy76 » 06.03.2018, 22:27

@ bahnuhr
Sollte gehen, Hatte glaube schon jemand. Ansonsten kriegen wir das hin :-)
Das war glaube ich... :lol:

Geht super mit ioBroker, derzeit Abtastrate 20sek...
Werte so einiges an Statistiken an und "live" Anzeige in mediola

Wenn du fragen hast, mach einfach Meldung. ;)

VG Torsten
RaspberryMatic (RP3) mit etwas über 60 Aktoren/Sensoren, 2 HMLAN (RP 2&3) Gateway, LIVE PV Eigenstromüberwachung mit Smartmeter, zig Verknüpfungen, iobroker Multihost (OPI Plus2 & BPI), Visu über Mediola und zwei Winkid8 Tablets

bongo22@gmx.de
Beiträge: 4
Registriert: 28.02.2018, 21:45

Re: Adapter "smartmeter"

Beitrag von bongo22@gmx.de » 07.03.2018, 19:33

apollon77 hat geschrieben:@bongo22@gmx.de ... Any more feedback?
Ja ;) geht jetzt perfekt. Konnte es über admin installieren.
Hat den Smartmeter sofort erkannt. Danke dir!

Benutzeravatar
apollon77
guru
Beiträge: 6560
Registriert: 10.04.2015, 12:27

Re: Adapter "smartmeter"

Beitrag von apollon77 » 07.03.2018, 21:52

Ok, dann bereite ich das als offizielles Update vor
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

bahnuhr
professional
Beiträge: 925
Registriert: 11.10.2016, 19:18
Wohnort: Eichenzell

Re: Adapter "smartmeter"

Beitrag von bahnuhr » 11.03.2018, 16:20

Hallo an alle,

das Projekt "Strom ablesen" ist abgeschlossen.
Klappt wunderbar.

Für alle die dies noch vor sich haben; anbei mal eine kleine Todo.

Danke an apollon und alle die mir Antwort gegeben haben.

1. Kauf Stromzähler
Wie oben geschrieben habe ich nun auch diesen bestellt:
https://www.amazon.de/gp/product/B01B8N ... UTF8&psc=1
Gekauft habe ich über Ebay (und das 2 x; für normaler Zähler und Photovoltaik).
Nils von der Seite "volkszähler" hat nun nach 3 Wochen auch auf meine Mail geantwortet. Er will 25,- Euro/Stück + Versand.
Er ist billiger, kam aber leider zu spät (ich hatte die Dinger ja nun jetzt schon).

2. Raspi 3 gekauft.
image von der iobroker Seite drauf.
Raspi als slave eingerichtet.
Smartmeter installiert; Device zugewiesen, fertig.

3. Ein paar Variablen angelegt. Im einzelnen folgende:

Code: Alles auswählen

// Stromzähler -------------------------------------------------------------------------------------------------------------
createState('javascript.0.Status.Stromzähler.Stunde.Bezogen_in_Wh', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Stunde.Bezogen_Zähler_alt', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Stunde.Eingespeist_in_Wh', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Stunde.Eingespeist_Zähler_alt', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Stunde.Produziert_in_Wh', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Stunde.Produziert_Zähler_alt', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Tag.Bezogen_in_Wh', 0, {type: 'number',name: 'Tag',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Tag.Bezogen_Zähler_alt', 0, {type: 'number',name: 'Tag',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Tag.Eingespeist_in_Wh', 0, {type: 'number',name: 'Tag',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Tag.Eingespeist_Zähler_alt', 0, {type: 'number',name: 'Tag',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Tag.Produziert_in_Wh', 0, {type: 'number',name: 'Tag',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Tag.Produziert_Zähler_alt', 0, {type: 'number',name: 'Tag',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Monat.Bezogen_in_Wh', 0, {type: 'number',name: 'Monat',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Monat.Bezogen_Zähler_alt', 0, {type: 'number',name: 'Monat',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Monat.Eingespeist_in_Wh', 0, {type: 'number',name: 'Monat',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Monat.Eingespeist_Zähler_alt', 0, {type: 'number',name: 'Monat',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Monat.Produziert_in_Wh', 0, {type: 'number',name: 'Monat',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Monat.Produziert_Zähler_alt', 0, {type: 'number',name: 'Monat',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Aktuell.Bezogen_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Aktuell.Eingespeist_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Aktuell.Produziert_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Bezogen_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Stand_Jahresanfang', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Stand_Jahresanfang', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Produziert_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Produziert_Stand_Jahresanfang', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Hochrechnung', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Hochrechnung', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
createState('javascript.0.Status.Stromzähler.Jahr.Produziert_Hochrechnung', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
Sieht dann bei den Objekten so aus:
bild1.jpg
bild1.jpg (614.3 KiB) 547 mal betrachtet
Dann noch ein kleines Script geschrieben:

Code: Alles auswählen

// Werte aus smartmeter auslesen und in Variablen schreiben

var java = 'javascript.0.Status.Stromzähler';
var Stand_bezogen = "smartmeter.1.1-0:1_8_0*255.value";             // Zähler links 180
var Stand_eingespeist = "smartmeter.1.1-0:2_8_0*255.value";         // Zähler links 280
var Stand_produziert = "smartmeter.0.1-0:2_8_0*255.value";          // Zähler rechts 280
var Gesamtwirkleistung = "smartmeter.1.1-0:16_7_0*255.value";       // Zähler links Wirkleistung aktuell
var Tag = "hm-rega.0.29681";
var Monat = "hm-rega.0.29682";


schedule("59 * * * *", function () {                        // jede Stunde Werte schreiben
    var akt_bezogen = parseInt(getState(Stand_bezogen).val * 1000);    // dann in Wh
    var alt_bezogen = parseInt(getState(java + '.Stunde.Bezogen_Zähler_alt').val * 1000);
    setState(java + '.Stunde.Bezogen_in_Wh', akt_bezogen - alt_bezogen);
    setState(java + '.Stunde.Bezogen_Zähler_alt', akt_bezogen / 1000);
    var akt_eingespeist = parseInt(getState(Stand_eingespeist).val * 1000);
    var alt_eingespeist = parseInt(getState(java + '.Stunde.Eingespeist_Zähler_alt').val * 1000);
    setState(java + '.Stunde.Eingespeist_in_Wh', akt_eingespeist - alt_eingespeist);
    setState(java + '.Stunde.Eingespeist_Zähler_alt', akt_eingespeist / 1000);
    var akt_prod = parseInt(getState(Stand_produziert).val * 1000);
    var alt_prod = parseInt(getState(java + '.Stunde.Produziert_Zähler_alt').val * 1000);
    setState(java + '.Stunde.Produziert_in_Wh', akt_prod - alt_prod);
    setState(java + '.Stunde.Produziert_Zähler_alt', akt_prod / 1000);
});

schedule("59 23 * * *", function () {                        // jeden Tag Werte schreiben
    var akt_bezogen = parseInt(getState(Stand_bezogen).val * 1000);
    var alt_bezogen = parseInt(getState(java + '.Tag.Bezogen_Zähler_alt').val * 1000);
    setState(java + '.Tag.Bezogen_in_Wh', akt_bezogen - alt_bezogen);
    setState(java + '.Tag.Bezogen_Zähler_alt', akt_bezogen / 1000);
    var akt_eingespeist = parseInt(getState(Stand_eingespeist).val * 1000);
    var alt_eingespeist = parseInt(getState(java + '.Tag.Eingespeist_Zähler_alt').val * 1000);
    setState(java + '.Tag.Eingespeist_in_Wh', akt_eingespeist - alt_eingespeist);
    setState(java + '.Tag.Eingespeist_Zähler_alt', akt_eingespeist / 1000);
    var akt_prod = parseInt(getState(Stand_produziert).val * 1000);
    var alt_prod = parseInt(getState(java + '.Tag.Produziert_Zähler_alt').val * 1000);
    setState(java + '.Tag.Produziert_in_Wh', akt_prod - alt_prod);
    setState(java + '.Tag.Produziert_Zähler_alt', akt_prod / 1000);
});

schedule("0 0 1 * *", function () {                        // jeden Monat Werte schreiben
    var akt_bezogen = parseInt(getState(Stand_bezogen).val* 1000);
    var alt_bezogen = parseInt(getState(java + '.Monat.Bezogen_Zähler_alt').val * 1000);
    setState(java + '.Monat.Bezogen_in_Wh', akt_bezogen - alt_bezogen);
    setState(java + '.Monat.Bezogen_Zähler_alt', akt_bezogen / 1000);
    var akt_eingespeist = parseInt(getState(Stand_eingespeist).val * 1000);
    var alt_eingespeist = parseInt(getState(java + '.Monat.Eingespeist_Zähler_alt').val * 1000);
    setState(java + '.Monat.Eingespeist_in_Wh', akt_eingespeist - alt_eingespeist);
    setState(java + '.Monat.Eingespeist_Zähler_alt', akt_eingespeist / 1000);
    var akt_prod = parseInt(getState(Stand_produziert).val * 1000);
    var alt_prod = parseInt(getState(java + '.Monat.Produziert_Zähler_alt').val * 1000);
    setState(java + '.Monat.Produziert_in_Wh', akt_prod - alt_prod);
    setState(java + '.Monat.Produziert_Zähler_alt', akt_prod / 1000);
});


// aktuelle Werte -----------------------------------------------------------------------------------------------------------------------------------------------
on({id: Stand_bezogen, change: "ne"}, function(obj) {           // Wert hat sich geändert.
    setState('javascript.0.Status.Stromzähler.Aktuell.Bezogen_in_W', parseInt(obj.newState.val * 1000) - parseInt(obj.oldState.val * 1000));
    setState('javascript.0.Status.Stromzähler.Jahr.Bezogen_in_W', parseInt(obj.newState.val * 1000) - parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Stand_Jahresanfang').val * 1000));
}); 
on({id: Stand_eingespeist, change: "ne"}, function(obj) {       // Wert hat sich geändert.
    setState('javascript.0.Status.Stromzähler.Aktuell.Eingespeist_in_W', parseInt(obj.newState.val * 1000) - parseInt(obj.oldState.val * 1000));
    setState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_in_W', parseInt(obj.newState.val * 1000) - parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Stand_Jahresanfang').val * 1000));
}); 
on({id: Stand_produziert, change: "ne"}, function(obj) {        // Wert hat sich geändert.
    setState('javascript.0.Status.Stromzähler.Aktuell.Produziert_in_W', parseInt(obj.newState.val * 1000) - parseInt(obj.oldState.val * 1000));
    setState('javascript.0.Status.Stromzähler.Jahr.Produziert_in_W', parseInt(obj.newState.val * 1000) - parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Produziert_Stand_Jahresanfang').val * 1000));
}); 


// Hochrechnung auf Jahr -----------------------------------------------------------------------------------------------------------------------------------------
schedule("*/5 * * * *", function () { 
    var Tage = getState(Tag).val + (getState(Monat).val-1) * 30;
        setState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Hochrechnung', parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Bezogen_in_W').val / Tage * 365 / 100) / 10);
        setState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Hochrechnung', parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_in_W').val / Tage * 365 / 100) / 10);
        setState('javascript.0.Status.Stromzähler.Jahr.Produziert_Hochrechnung', parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Produziert_in_W').val / Tage * 365 / 100) / 10);    
});


// am 31.12. um 23:59 jeden Jahres Werte setzen -----------------------------------------------------------------------------------------------------------------------------------------
schedule("59 23 31 12 *", function () {                        // jeden Monat Werte schreiben
    setState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Stand_Jahresanfang', parseInt(getState(Stand_bezogen).val));
    setState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Stand_Jahresanfang', parseInt(getState(Stand_eingespeist).val));
    setState('javascript.0.Status.Stromzähler.Jahr.Produziert_Stand_Jahresanfang', parseInt(getState(Stand_produziert).val));
});

 
Und eine VIS zusammengebastelt:
bild2.jpg
bild2.jpg (570.11 KiB) 547 mal betrachtet

Nochmals Danke für die Hilfe; insbesondere apollon für den Adapter.

mfg
Dieter

-> nächstes Projekt - Wasserzähler
Mal schauen.

Benutzeravatar
Homoran
guru
Beiträge: 13027
Registriert: 08.08.2014, 16:50

Re: Adapter "smartmeter"

Beitrag von Homoran » 11.03.2018, 16:29

Hallo Dieter,
warum wertest du denn bei der Spülmaschine und Waschmaschine mA aus und nicht auch Watt, dann wäre das Ganze doch mehr konsistent.

bei mir sieht das so aus:
strom_20180311.png
strom_20180311.png (424.12 KiB) 544 mal betrachtet
Mistwetter hier :(

Gruß
Rainer
kein Support per PN!
Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

Antworten