Hallo,
zur Anbindung an ein Fluksometer v2 habe ich ein kleines FHEM Modul geschrieben. Dieses liest über einen HTTP Request die Leistungswerte des angegebenen Sensors ein. Ein Sensoreingang kann S0-Signale eines Strom/Gas-zählers verarbeiten oder die üblichen Stromklammern pro Phase oder Leitung.
define <name> FLUKSO <IP-Adresse> <Sensor-ID>
z.B. define Stromzaehler FLUKSO 192.168.x.x abc123456789
oder define Phase1 FLUKSO fluksometer abcd123456789
Dies führt dann folgende Anfrage aus:
http://192.168.x.x:8080/sensor/abc123456789?version=1.0&interval=minute&unit=watt&jsonp_callback=realtime
Das Ergebnis wird in folgenden Readings ausgegeben:
Power_actual / energy_current: gibt den letzten Leistungswert zurück
Power_average / energy_average: gibt einen Mittelwert der übergebenen Leistungswerte zurück, i.d.R. ist das ein Minutendurchschnitt
Power_counter / energy: Berechneter Zählerstand
Attribute:
- FLUKSO_path: Falls du eine abweichende Flukso-Firmware-Version hast, kann der Parameter "FLUKSO_path" helfen. Per default steht hier:
?version=1.0&interval=minute&jsonp_callback=realtime
- delay: Wenn die 60-Sekunden-Aktualisierung zu kurz ist, kann mit dem Attribut "delay" eine andere Zeit in Sekunden eingestellt werden. Allerdings gehen damit auch Werte für die Zählerstandermittlung verloren.
- verbose: mit "2" werden die Meldungen im Log reduziert.
- connectTimeout: Timeout für den request (Standard ist 5 Sekunden)
- FLUKSO_corrF: Korrekturfaktor/Multiplikator um reading zu übersteuern. Default = 1
- FLUKSO_unit: Verwende watt (bei Strom, Wärme) oder lperday (bei Wasser und Gas). Default = watt
- FLUKSO_offset: Zählerstand oder Offset um den absoluten Wert fortzuschreiben. Bitte nicht in FHEM config abspeichern, da sonst der Aufsetzpunkt jedes mal beim nächsten FHEM Start verwendet wird.
Viel Spass beim Ausprobieren.
Nebenbei suche ich nach einer Möglichkeit diese Stromklammern am Raspi zu betreiben. Hat jemand eine Idee?
Gruß
optimizer
PS: angehängte Datei nach Unterordner /FHEM kopieren und restart/reload nicht vergessen.
Änderungen:
16.12.2014: Version 0.4: Power_counter mit offset, trend
21.08.2015: Version 0.5: kleine Änderungen, Doku
10.09.2015: Version 0.6: lperday Korrektur
05.11.2015: Version 0.7: neuer Korrekturfaktor, lperday-Fix, neue reading-Namen (energy) für statistics, Attribute überarbeitet
Hi,
habe gerade dein Modul eingebaut und es funktioniert einwandfrei - super Arbeit!
Bisher logge ich meinen Strom S0 Zähler mit. Im Log hat er noch ein wenig wegen Perl Warnings gemeckert und den Status schreibt er minutlich ins FHEM Log, wird auf Dauer etwas viel, wobei man mit attr verbose= im Modul etwas reduzieren könnte.
2014.11.20 21:29:08 1: PERL WARNING: given is experimental at ./FHEM/23_FLUKSO.pm line 118.
2014.11.20 21:29:08 1: PERL WARNING: when is experimental at ./FHEM/23_FLUKSO.pm line 120.
2014.11.20 21:29:08 1: PERL WARNING: when is experimental at ./FHEM/23_FLUKSO.pm line 124.
2014.11.20 21:29:08 1: PERL WARNING: when is experimental at ./FHEM/23_FLUKSO.pm line 130.
2014.11.20 21:29:08 1: PERL WARNING: when is experimental at ./FHEM/23_FLUKSO.pm line 135.
2014.11.20 21:29:18 3: FLUKSO FluksoStromS0: StatusTimer.335 --- started ---
2014.11.20 21:29:18 3: FLUKSO FluksoStromS0: StatusStart.197 --- started ---
2014.11.20 21:29:18 3: FLUKSO FluksoStromS0: StatusStart.244 --- done ---
2014.11.20 21:29:18 3: FLUKSO FluksoStromS0: StatusTimer.348 --- done ---
2014.11.20 21:30:18 3: FLUKSO FluksoStromS0: StatusTimer.335 --- started ---
2014.11.20 21:30:18 3: FLUKSO FluksoStromS0: StatusStart.197 --- started ---
2014.11.20 21:30:18 3: FLUKSO FluksoStromS0: StatusStart.244 --- done ---
2014.11.20 21:30:18 3: FLUKSO FluksoStromS0: StatusTimer.348 --- done ---
2014.11.20 21:31:18 3: FLUKSO FluksoStromS0: StatusTimer.335 --- started ---
2014.11.20 21:31:18 3: FLUKSO FluksoStromS0: StatusStart.197 --- started ---
2014.11.20 21:31:18 3: FLUKSO FluksoStromS0: StatusStart.244 --- done ---
2014.11.20 21:31:18 3: FLUKSO FluksoStromS0: StatusTimer.348 --- done ---
......
Nochmals danke für deine Arbeit,
Grüße
Chris
Hallo Chris,
freut mich, dass es bei dir funktioniert.
Ich bin mal gespannt, wie das bei deinem Gas- u. Wasser-Zähler aussieht.
Hi,
hab heute meinen Gas- und Wasserzähler hinzugefügt. Dazu je eine weitere Flukso-Instanz gestartet. Im Frontend sieht es momentan so aus:
(https://lh4.googleusercontent.com/-IMojL_mHhYI/VHX_hyTHbxI/AAAAAAAAT2k/lYsCZvTDJ_g/s800/flukso.png)
Gas und Wasser liefern noch "Watt" Werte, ich denke das kann man im Modul umstellen (unit=Watt).
Auf jeden Fall sehe ich schonmal wenn der Gas- und Wasserzähler läuft, dies ist mir bei diesen Zählern am Wichtigsten. Den Wasserzähler habe ich noch mit DOIF verknüpft - sollte das Wasser länger als 20 Minuten laufen bekomme ich eine Pushnachricht aufs Handy.
Im Log hatte ich heute noch folgende Perl-Warnings, vermutlich wegen eines Timeouts
2014.11.26 15:57:07 2: FLUKSO FluksoStromS0: ParseSensorResponse.263 Error while requesting http://192.168.77.39:8080/sensor/xxxsensor1xxx?version=1.0&interval=minute&unit=watt&jsonp_callback=realtime - read from http://192.168.77.39:8080 timed out
2014.11.26 15:57:07 1: PERL WARNING: Exiting subroutine via last at ./FHEM/23_FLUKSO.pm line 265.
2014.11.26 15:57:12 2: FLUKSO FluksoGasS0: ParseSensorResponse.263 Error while requesting http://192.168.77.40:8080/sensor/xxxsensor2xxx?version=1.0&interval=minute&unit=watt&jsonp_callback=realtime - read from http://192.168.77.40:8080 timed out
Falls jemand Interesse am DOIF code für die Wassermeldung hat:
define DI_FluksoWasser DOIF ([FluksoWasserS0] =~ "W") (set Pushover1 msg 'Achtung - Wasser laeuft' 'seit mehr als 20 Minuten' ''0'')
attr DI_FluksoWasser wait 1200
Cheers
Chris
ZitatGas und Wasser liefern noch "Watt" Werte, ich denke das kann man im Modul umstellen (unit=Watt).
Probier mal mit dem Paramter FLUKSO_path eine andere Einheit zu übergeben. Neben watt kann man noch lperday für Gas oder Wasser verwenden. In Version 0.3 wird die Einheit aus dem String übernommen. Wir könnten auch ein eigenes Attribut machen, oder die Einheit auch ganz weglassen?
ZitatIm Log hatte ich heute noch folgende Perl-Warnings, vermutlich wegen eines Timeouts
Timeout ist auf 5 Sekunden eingestellt. Soll ich das auch als Attribut "FLUKSO_timeout" ermöglichen? Was für einen Wasserzähler mit S0 hast du?
ZitatDOIF code für die Wassermeldung
gefällt mir :-)
Gruß
Karlheinz
PS: Ich werde die flukso.pm immer nur im ersten Post aktualisieren (Version 0.3).
lperday ist ideal, werde das im Path anpassen. Ein Attribut dafür und für die anderen Werte wäre natürlich sehr komfortabel. Somit kann jeder seine Einheiten und Werte selbst anpassen.
Ich nutze folgenden Wasserzähler: http://www.energie-zaehler.com/epages/61422236.sf/de_DE/?ObjectPath=/Shops/61422236/Products/ETAKDN20-130-I1
Funktioniert hier seit über 2 Jahren problemlos.
Grüße
Chris
Jetzt kann man zwei neue Attribute verwenden:
- connectTimeout (default 5 Sekunden)
- FLUKSO_unit (default watt)
Neue Version im ersten Post
Gruß
Karlheinz
Hallo Karlheinz
hab gerade die 0.3 Version probiert. Funktioniert sowiet, nur leider läßt sich das Attribut FLUKSO_unit im Webfrontend nicht ändern (nicht anklickbar).
Grüße
Chris
Hi Chris,
die Attribute erscheinen nur wenn ein define mit der neuen Version durchgeführt wurde. Probier mal folgendes: "DEF" von deinem device anklicken (da könntest du den define ändern) und anschließend auf den Knopf modify ... drücken; dann sollten die Attribute in der Liste erscheinen.
Gruß
Karlheinz
perfekt, jetzt funktionierts :)
Dank Dir,
Chris
Hallo Optimizer,
vielen Dank für Deinen Hinweis auf diesen Thread.
Habe mir eben mal die 0.3 installiert und hatte sofort den aktuellen Stromverbrauch in der Anzeige.
Super, klasse, vielen Dank!
Der Chumby neben mir zieht mit einem http-request immer gleich die letzten 60 Sekunden mit jeweils Wert pro Sekunde (wenn ich es richtig verstanden habe) und bildet daraus Graphen, Mittelwerte der letzten 5 Min und 15 Min.
Meinst Du sowas wäre auch in fhem mit Deinem Modul möglich?
Soll nicht fordernd rüber kommen, freue mich sehr über das was ich Dank Dir jetzt schon habe.
Hat jemand die Werte die aktuell geliefert werden in einen Graphen gepackt und könnte mir einen Code-Schnipsel zukommen lassen?
Bin leider noch zu doof, um selbst Graphen zu erstellen (hab es wirklich mal 2h probiert).
Lieben Gruss,
Bilbo_b
Hallo,
Danke für das Modul, hab 3 einzelne Phasen eingebunden und lass dein Modul im 10 Sekundentakt die Daten abrufen.
Funktioniert problemlos seit fast einer Woche... :P
Über ein userreading addiere ich die 3 Phasen zusammen um den aktuellen Verbrauch angezeigt zu bekommen.
Hat jemand eine Idee wie ich einen "aktuellen" Zählerwert generieren könnte?
Gruß Christoph
@ bilbo_b:
Danke für dein Feedback.
Die grafische Ausgabe ist in FHEM einfach und wegen der Historie besser als im Chumby.
1. Du musst die Daten erstmal mitschreiben - das ist mit einem " filelog (http://fhem.de/commandref_DE.html#FileLog)" am einfachsten: z.B. define Zaehler_filelog FILELOG ./log/Zaehlerlog-%Y.log (Stromzaehler:Power_average).*
Anstatt "Stromzaehler" muss der Name vom Flukso device eingesetzt werden!
2. nach einigen Minuten sollten Readings in die Datei eingetragen werden, dann (oder besser am nächsten Tag) kannst du das Diagramm erzeugen: Im neu erstellten device (hier Zaehler_filelog) auf "create SVG plot" klicken und das Diagramm nach deinem Geschmack erstellen. Wähle column "4" und das Reading u. drück dann einmal auf "write gplot file"
Mir hat dabei die Anleitung http://forum.fhem.de/index.php/topic,25040.0.html (http://forum.fhem.de/index.php/topic,25040.0.html) geholfen. Da muss man am Anfang ausprobieren.
Viel Erfolg
@Christoph:
10-Sekundentakt erzeugt VIELE Daten!
ZitatHat jemand eine Idee wie ich einen "aktuellen" Zählerwert generieren könnte?
Du meinst den Zählerstand? Bei jedem Reading den Zählerstand anhand eines Offsets zu errechnen stelle ich mir im Moment etwas aufwändig und ungenau vor.
Vielleicht hilft http://www.fhemwiki.de/wiki/Stromz%C3%A4hler_und_1-Wire,_OWServer,_OWDevice weiter?
Hallo Christoph,
deine Idee mit dem Zählerstand war doch nicht so schwer. Über das neue Attribut FLUKSO_offset in der Version 0.4, kann der Zählerstand als neue Basis verwendet werden. Dieser wird beim nächsten Reading dem durchschnittlichen Verbrauch zugerechnet und in das neue Reading Power_counter geschrieben. FLUKSO_offset wird anschliessend gelöscht. Zusätzlich gibt es noch eine kleine Trendanzeige mit Power_counter im state.
Ich bin mir nicht sicher wie genau das ganze ist. Probiert mal die neue Version 0.4 aus.
Das unnötige Reading Sensor-id hab ich entfernt.
Hallo Karlheinz,
habe gerade V0.4 probiert. Tolles Features mit dem Zählerstand, ist echt praktisch. Könntest du evtl. noch als unit "lpermin" aktivieren, so das bei Gas und Wasserzähler die Minutenwerte und nicht die Tageswerte berechenet werden (und entsprechend aufaddiert werden)?
Alternativ könnte man die lperday-Werte auch durch 1440 teilen um auf die Minutenwerte zu kommen.
Am besten wäre aber ein zusätzliches Attribut, wo man seinen gewünschten "Teiler" selbst eintragen könnte (somit könnte ich meinen Gaszähler "korrekt" aufzählen lassen, da ich vor 2 Jahren beim flukso.net - Config einen falschen Impuls-Wert angegben habe, somit zählt mein Gaszähler viel zu viel - anstatt beispielsweise 20m³ Tagesverbrauch sind es im Chart 2000m³ ;) )
Grüße
Chris
Hallo Chris,
mein Flukso akzeptiert IMHO nur watt u. lperday. Falls deiner auch etwas anderes akzeptiert kannst du das im Attribut FLUKSO_unit eintragen. Ausserdem kannst lpermin über ein userReadings erreichen: LPERMIN { ReadingsVal($name,"Power_average",0) /1440 }
Beim Zählerstand rechne ich bei Einheit lperday: Power_average / 1000
Ist das überhaupt korrekt?
Hi,
ich muss die Zählerstand-Werte mal mit meinem Flukso-Account abgleichen, das scheint aber nicht zu passen. Eine Alternative für den Zählerstand wäre ggf. sich aufbereitete Daten direkt von der flukso.net Api ( http://www.flukso.net/files/flm02/manual.pdf ) zu holen.
Das Modul ist ja ansich nonblocking oder? Denn Flukso.net ist ab und zu nicht erreichbar.
Grüße
Chris
Hallo Chris,
Deinen Post hab ich doch glatt übersehen ???
Leider nutze ich flukso.net nicht, deshalb würd ich mich beim Testen schwer tun.
Das Modul ist ja ansich nonblocking oder?
Ich denk schon ;D
Denn Flukso.net ist ab und zu nicht erreichbar.
Das spricht für einen direkten Zugriff auf den Flukso im lokalen Netz. Gib mir ne Formel für Wasserzähler - dann wärs gleich erledigt.
Hallo an alle,
viele nutzen das statistics Modul um Tagesstatistiken zu erhalten. Das funktioniert aber nur bei bestimmten Reading-Namen auf Anhieb: "brightness" => 1
,"count" => 2
,"current" => 1
,"energy" => 2
,"energy_current" => 1
,"energy_total" => 2
,"Total.Energy" => 2
,"power" => 1
,"rain_rate" => 1
,"rain_total" => 2
,"temperature" => 1
,"total" => 2
,"voltage" => 1
"2" rechnet delta für Zählerstände; "1" rechnet täglich Min/Max/AVG
Was würded ihr nehmen anstatt Power_actual/Power_average/Power_counter ?
Hallo,
Ich bekomme bei jeder Aktualisierung das rote Fragezeichen neben dem Save Button angezeigt... Gibt es da eine Lösung dazu ?
Gruß Christoph
Last 10 structural changes:
deleteAttr Strom_L2 FLUKSO_offset
deleteAttr Strom_L1 FLUKSO_offset
deleteAttr Strom_L3 FLUKSO_offset
Hallo Christoph,
die aktuelle Version (0.5) ist schon lange fertig - aber war bislang noch nicht hochgeladen. Siehe ersten Beitrag.
Gruß
optimizer
Hallo optimizer,
Dankeschön, jetzt ist das Fragezeichen verschwunden. ;D
Gruß Christoph
Hi,
ich stehe etwas auf dem Schlauch. Das Auslesen mit dem FLUKSO-Modul funktioniert hervorragend, den Vergleich bei Strom mit dem echten Zähler kann man ohne Probleme aufgrund der Einheiten vornehmen. Allerdings hänge ich bei dem Gaszähler. Wie hier schon geschrieben, gibt es dort nur die Einheit Liter per Day. Mein Gaszähler zählt m3 mit 3 Nachkommastellen (als quasi Liter). Nun schaffe ich es leider nicht, den Power-Counter in FHEM so umzurechnen, dass ich mit dem Gaszählerstand vergleichen könnte?
Hat jemand einen Denkanstoss für mich?
Eigentlich müsste man den Power-Counter doch nur mit der Zeitdifferenz zwischen zwei Messzeitpunkten in Verbindung bringen, oder?
Vielen Dank.
LuckyLuis
Hallo LuckyLuis,
ist der Power_Counter immer viel zu hoch? Um welchen Faktor? Setz ihn mal auf 0 (Flukso_offset) und vergleiche nach einem Tag die Werte mit dem Gaszähler.
Im Moment wird für Gas Liter in m³ gerechnet:
# lperday für Gas u. Wasser in Kubikmeter umrechnen
$counter = $avg*$delay/1000;
$unit2 = "m3";
Welche Zeitumrechnung soll ich für lperday berücksichtigen - 3600*24 ?
Hallo optimizer,
der Power-Counter ist immer utopisch hoch. Ich habe mal zur Analyse eine Tabelle der letzten 4 Tage angelegt
Zähler m3 FHEM lperday Verbrauch Zähler liter Verbrauch Flukso
13270,315 1.112.100,19 0 0,00
13273,367 1.276.224,52 3052 164.124,33
13275,25 1.395.662,30 1883 119.437,78
13277,88 1.549.644,94 2630 153.982,64
13280,307 1.681.296,55 2427 131.651,61
In der Flukso-Cloud stimmt der Verbrauch.
Der FLUKSO-Path lautet bei mir in FHEM: FLUKSO_path ?version=1.0&interval=minute&jsonp_callback=realtime
und FLUKSO_unit lperday
Mit dem Interval minute müsste Deine vorgeschlagene Zeitumrechnung passen?!?
Vielen Dank ud Gruß
LuckyLuis
Hallo LuckyLuis,
das scheint immer um Faktor 60 incl. Rundungsungenauigkeit zu hoch zu sein.
Probier mal die neue Version 0.6 (siehe erster Beitrag) aus. Bei lperday rechne ich jetzt: $counter = $avg*$delay/1000/60;
Gruß
optimizer
Gude Optimizer,
habe das neue Modul soeben installiert und das Offset auf 0 gesetzt. Werde die nächsten Tage berichten!
Vielen Dank für die schnelle Unterstützung.
LuckyLuis
PS: Wenn ich jetzt noch eine bezahlbare Wasserzähler-Anbindung finde...;-)
Optimizer,
nach einigen "Startschwierigkeiten" auf meiner Seite, habe ich heute einen ersten ernsthaften Vergleich FLUSKO/FHEM und Gaszähler machen können. Es gab ein Abweichung von ca. 0,15 m3 in 24 Stunden. Werde es weiter verfolgen, würde aber m.E. aufgrund der Durchschnittsberechnung nicht wesentlich besser werden. Liege ich da richtig?
Vielen Dank nochmals!
VG
LuckyLuis
Hallo,
jetzt ist es einige Tage gelaufen und zeigt bei Gas weiterhin leichte Differenzen. Bei Strom passt es sehr gut. Da weicht es eher wegen der Anpassung in Flukso (Phasen, Spannung) ab.
Vielen Dank.
LuckyLuis
Hallo LuckyLuis,
wie groß sind dich Abweichungen? Glaubst du, dass das Rundungsfehler sind, oder stetig steigende Abweichungen? Für stetige Abweichungen könnte ich mir einen weiteren Paramter für einen Korrekturfaktor vorstellen.
Hi Optimizer,
entschuldige die späte Antwort. Habe gerade Stück für Stück meine FHEM-Installation auf eine komplett neu eingerichte Raspi Pi 2 Plattform umgezogen und dabei mal alle alten Stricke abgeschnitten ;-).
Die gerechneten Werte bei Gas sind wohl eher "Rundungsfehler aufgrund der lperday-Grundlage (so sehe ich das). Werde die nächsten Tage mal wieder Tabellen anlegen ....
Dazu ist seit heute ein neuer Wasserzähler integriert worden (Sensus HRI Scout A3, Schweineteuer, aber besser als einen Wasserschaden beheben...). Der zeigt mir auf dem lokalen Flukso-Rechner die richtigen Werte an. Allerdings sind sie jetzt in FHEM mit dem Faktor 1000 zu klein.... Was bei Gas passt, passt bei Wasser nicht mehr. Kannst Du den Divisor als Attribut einrichten oder gegebenfalls bei einem erkanntem Wassersensor (wir ja auf der Flukso-Kiste hinterlegt) den Divisor anpassen?
Viele Grüße und nochmals Danke für Deinen Einsatz.
LuckyLuis
Hallo LuckyLuis,
Im Flukso kann man unter type zwischen electricity/water/gas auswählen. Für Wasser u. Gas sollte aber die Einheit lperday ausgegeben werden - anscheinend doch nicht durchgehend.
Leider habe ich keinen s0-Wasserzähler um das auszuprobieren.
Ein Divisor oder Korrekturfaktor ist dann wohl die einzige Möglichkeit. Schau ich mir mal an.
Gruß
Karlheinz
Hi Optimizer,
warte mal mit dem schauen. Ich habe auch schon ein Attribut FLUKSO_divisor eingebaut und per Default auf 1000 gesetzt. Ich analysiere das noch bis zum Wochenende (auch die Abweichungen mit dem Gas, Tendenz: Es wird immer etwas zu wenig ausgewiesen). Im Anhang findest Du meine Version (alle Änderungen mit #AB gekennzeichnet).
Danke!
Viele Grüße
LuckyLuis
Hallo Optimizer,
meine Analyse zeigt, dass für Gas und Wasser die Verbrauchswerte zu niedrig im Counter berücksichtigt werden.
Aufgrund eines anderen Problemes habe ich mit mal mit der MQTT-Technik des Flukso beschäftigt (ab Firmware 246) und bin darüber über die FHEM-Module MQTT und MQTT-DEVICE gestolpert. Damit kann ich jetzt den Flukso-eigenen Counter (auf dem lokalen Flukso-Gerät) abfragen. Die Werte in Flukso sind richtig. Gerne kann ich bei Bedarf mein Setup zur Verfügung stellen.
Trotzdem vielen Dank für Deinen Einsatz.
Viele Grüße
LuckyLuis
Hallo LuckyLuis,
schön dass du einen Weg gefunden hast, es wäre nett, wenn du mir noch bei der Fehlersuche behilflich sein könntest, damit andere auch davon profitieren.
Kannst du die Daten die mein Modul über
http://flukso:8080/sensor/12345?version=1.0&interval=minute&jsonp_callback=realtime&unit=lperday
ausliest im Vergleich zu MQTT posten (flukso u. 12345 musst du mit deinen Werten ersetzen)?
Gruß
Karlheinz
Hi Optimizer,
werde mich am Wochende mal dran machen.
Gruß
LuckyLuis
Hi Optimizer,
habe soeben mal einen Vergleich gemacht. Der Gaszähler hat sich gerade mal 10 Liter bewegt. Anschließend die nächste Messung noch wegen der Veränderung.
1. Ausgabe mit Deinem angebenenen Link:
1. Messung:
realtime([[1446407838,924],[1446407839,924],[1446407840,924],[1446407841,924],[1446407842,924],[1446407843,924],[1446407844,924],[1446407845,924],[1446407846,924],[1446407847,924]
,[1446407848,924],[1446407849,924],[1446407850,924],[1446407851,924],[1446407852,924],[1446407853,924],[1446407854,924],[1446407855,924],[1446407856,924],[1446407857,924]
,[1446407858,924],[1446407859,924],[1446407860,924],[1446407861,924],[1446407862,924],[1446407863,924],[1446407864,924],[1446407865,924],[1446407866,"nan"],[1446407867,"nan"]
,[1446407868,"nan"],[1446407869,"nan"],[1446407870,"nan"],[1446407871,"nan"],[1446407872,"nan"],[1446407873,"nan"],[1446407874,"nan"],[1446407875,"nan"],[1446407876,"nan"]
,[1446407877,"nan"],[1446407878,"nan"],[1446407879,"nan"],[1446407880,"nan"],[1446407881,"nan"],[1446407882,"nan"],[1446407883,"nan"],[1446407884,"nan"],[1446407885,"nan"]
,[1446407886,"nan"],[1446407887,"nan"],[1446407888,"nan"],[1446407889,"nan"],[1446407890,"nan"],[1446407891,"nan"],[1446407892,"nan"],[1446407893,"nan"],[1446407894,"nan"]
,[1446407895,"nan"],[1446407896,"nan"],[1446407897,"nan"]]);
2. Messung:
realtime([[1446408428,1428],[1446408429,1428],[1446408430,1428],[1446408431,1428],[1446408432,1428],[1446408433,1428],[1446408434,1428],[1446408435,1428],[1446408436,1428],[1446408437,1428]
,[1446408438,1428],[1446408439,1428],[1446408440,1428],[1446408441,1428],[1446408442,1428],[1446408443,1428],[1446408444,1428],[1446408445,1428],[1446408446,1428],[1446408447,1428]
,[1446408448,1428],[1446408449,1428],[1446408450,1428],[1446408451,1428],[1446408452,1428],[1446408453,1428],[1446408454,1428],[1446408455,1428],[1446408456,1428],[1446408457,1428]
,[1446408458,1428],[1446408459,1428],[1446408460,1428],[1446408461,1428],[1446408462,1428],[1446408463,1428],[1446408464,1428],[1446408465,1428],[1446408466,1428],[1446408467,1428]
,[1446408468,1428],[1446408469,1428],[1446408470,1428],[1446408471,1428],[1446408472,"nan"],[1446408473,"nan"],[1446408474,"nan"],[1446408475,"nan"],[1446408476,"nan"],[1446408477,"nan"]
,[1446408478,"nan"],[1446408479,"nan"],[1446408480,"nan"],[1446408481,"nan"],[1446408482,"nan"],[1446408483,"nan"],[1446408484,"nan"],[1446408485,"nan"],[1446408486,"nan"],[1446408487,"nan"]]);
Ausgabe der MQTT-Messages:
1. Messung
1446407865: /sensor/12345/gauge ~> [1446407865,924,"L/day"]
1446407865: /sensor/12345/counter ~> [1446407865,398690,"L"]
2. Messung
1446408471: /sensor/12345/gauge ~> [1446408471,1428,"L/day"]
1446408471: /sensor/12345/counter ~> [1446408471,398700,"L"]
Gauge ist der aktuelle Verbrauchswert, counter der Flukso-interne Zähler ( den benutze ich jetzt).
Hoffe, das hilft weiter.
Viele Grüße
LuckyLuis
Hallo LuckyLuis,
deine Auswertung hat mir weitergeholfen.
In der 2. Messung wird zwischen 20:07:08 - 20:07:51 Uhr imho ein Liter verbraucht (1428*44/24/60/44). Wenn die 10 Minuten vorher den gleichen Verbrauch hatten, macht das 10 Liter.
Änderung folgt.
Gruß
Karlheinz
Hallo,
mit der neuen Version 0.7 wurde einiges geändert:
- neuer Korrekturfaktor: Die Werte können dadurch z.B. durch einen Faktor v. "1.05" um 5% erhöht werden.
- lperday-Fix: Ausgabe in Liter, anstatt m³.
- neue reading-Namen (energy) zur besseren Unterstützung des statistics-Moduls. Die alten (Power*) werden beim nächsten Mal gelöscht.
- Attribute überarbeitet: unit mit Auswahlmöglichkeit. userattr nicht mehr nötig.
Gruß
Karlheinz
Zitat von: LuckyLuis am 25 Oktober 2015, 21:46:39
Gerne kann ich bei Bedarf mein Setup zur Verfügung stellen.
Ich hätte Interesse daran :)
Hallo Christoph,
gerne! ;-)
Zuerst eine Verbindung zum FLUKSO-Server (der Kiste daheim) aufbauen ("flukso" ist der hostname):
define MQTTFlukso MQTT flukso:1883
Dann für jeden Sensor eine Queque aufbauen, z.B.:
define MQTTFluksoStrom MQTT_DEVICE MQTTFlukso
Jetzt die entsprechenden Nachrichten "abonnieren". Hier die Flusko-internen Zählerstandswerte ("id-des-sensors" gegen entsprechende ID austauschen. Zu finden über die Einstellungen im Flukso-Web-Portal. Statt counter geht auch "gauge"; das sind die aktuellen Werte.):
attr MQTTFluksoStrom subscribeReading_counter /sensor/id-des-sensors/counter
Jetzt noch Gedanken über das Logging machen. Da kommen eine Menge Daten drüber.
Weiterhin habe ich noch folgende UserReadings definiert:
Für den aktuellen Zählerstand laut Zähler folgendes user-Attribut anlegen:
attr MQTTFluksoStrom userattr offset
attr MQTTFluksoStrom offset "Zählerstand abzüglich Flukso-Zählerstand"
(Flukso-Zählerstand abzulesen nach dem ersten Erhalten der Nachrichten aus dieser Verbindung)
und dann
attr MQTTFluksoStrom userReadings FluksoZaehler {sprintf("%u",(split(",",ReadingsVal($name,"counter",0)))[1])},Zaehler {sprintf("%u",(split(",",ReadingsVal($name,"counter",0)))[1]+AttrVal($name,"offset",0))}
Ein anschließendes
attr MQTTFluksoStrom stateFormat Zaehler
gibt den Zählerwert als State-Reading aus.
Ich hoffe, ich habe die Befehle richtig wiedergegeben. Viel Erfolg beim Umsetzen.
Viele Grüße
LuckyLuis
Hallo LuckyLuis,
danke für die Anleitung funktioniert problemlos :D
Kann es sein das Flukso nur den ersten Sensor per mqtt überträgt?
Oder muss ich hier noch am Flukso was einstellen damit alle meine 3 Sensoren übertragen werden?
Im Webinterface von Flukso unter mqtt wird auch nur der erste Sensor ausgegeben.
Gruß Christoph
Hi Christoph,
ich nutze 3 Sensoren und die kann ich alle abonnieren (mache ich auch ;-)). Hast Du die Erweiterung von GebhardtM (siehe Flukso-Forum) installiert? Da kann man unter Panel alle Sensoren auch sehen. Ich musste (und ich glaube kann man auch nicht) etwas besonderes für MQTT einrichten. Du brauchst aber Firmware 247.
Viele Grüße
LuckyLuis
Hallo LuckyLuis,
danke habs jetzt auch hinbekommen, hatte bei meinem Flukso irgendwie eingestellt gehabt das nur eine Phase aktiv ist. :P
Gruß Christoph