Neueste Beiträge

#1
MQTT / Aw: [gelöst]: jsonMap und Unte...
Letzter Beitrag von Otto123 - 14 Mai 2024, 22:19:50
Ob das ein Dreher ist oder nur umständlich beschrieben, kann ich jetzt auf die Schnelle nicht feststellen :)
Eine verständliche Beschreibung wäre auf alle Fälle gut. ;)
#2
MQTT / Aw: jsonMap und Unterstriche m...
Letzter Beitrag von dora71 - 14 Mai 2024, 22:14:53
Zitat von: rudolfkoenig am 14 Mai 2024, 22:00:50Ist ja auch, er greift _nach_ der Umbenennung durch jsonMap.
Im Gegensatz dazu greift Parameter 5 (negativer Filter) vor der Umbenennung.

DAS muss man ja erstmal wissen ... und schon funktioniert es!

Danke Rudi. Ich setze das Thema auf gelöst. Wenn ich morgen Zeit habe, versuche ich das noch im Wiki unterzukriegen. Da ist auch noch ein Dreher drin bzgl. dem 4. und 5. Parameter.
#3
MQTT / Aw: jsonMap und Unterstriche m...
Letzter Beitrag von rudolfkoenig - 14 Mai 2024, 22:00:50
ZitatIch dachte, der 4. Parameter wäre lediglich ein Filter.
Ist ja auch, er greift _nach_ der Umbenennung durch jsonMap.
Im Gegensatz dazu greift Parameter 5 (negativer Filter) vor der Umbenennung.
#4
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von kask - 14 Mai 2024, 21:50:41
@hazelnut

Zitataktuell kostet die kWh Heizöl ca. 10 ct. Für die Rückspeisung von Strom ins Netz würde ich irgendwas bei 8ct/kWh bekommen. Wenn ich den selbst erzeugten Strom (20 Jahre bei durchschnittlich erwarteten Ertrag) nehme bin ich unter den 10 ct/kWh die mich das Öl kostet

Öl:
Uij, 10ct/kWh das ist aber nicht gerade wenig. Ich dachte es wäre günstiger.
Da Zahle ich ja weniger mit Fernwärme. Zudem ist meine Fernwärmeübergabestation bei weitem billiger in der Anschaffung.
Und einen Schornsteinfeger brauch ich auch nicht.
Wieviel Watt braucht den das Gebläse an elektrischer Energie vom Brenner (Ich vermute jetzt mal das der Kessel ja nicht betröpfelt wird)? Das kommt ja auch noch on top.

Elektrizität:
Sicher das es unter 10ct/kWh werden können?
z.B. eine 20kWpp Anlage macht ca. 20MWh im Jahr hier bei Uns.
Das sind in 20Jahren 400MWh. Bei 10k€ ..was 500€/kWpp sind..wären das schon 10000/4000000 = 2.5€cent.

Dazu kommen jetzt noch deine 8€cent. Weil du diese ja nicht einspeisst. Also sind es schon 10.5€cent.

Und bei dem alter der Anlage glaube ich nicht das du einen Gen24+BYD+Panele für 500€/kwpp bekommen hast.

Ich kann mich da aber auch täuschen und du hast nen wirklichen Schnapper einst gemacht.
#5
MQTT / Aw: jsonMap und Unterstriche m...
Letzter Beitrag von dora71 - 14 Mai 2024, 21:43:38
Hallo Otto,

danke für die schnelle Antwort. Gerade mal das Device kopiert ... Du hast recht! Sobald der 4. Parameter weg ist, funktioniert es  :o

Hat für mich aber erstmal doch nichts miteinander zu tun. Ich dachte, der 4. Parameter wäre lediglich ein Filter.

Gibt es eine weitere sinnvolle Möglichkeit, einzelne Readings umzubenennen ohne gleich das komplette JSON zu haben?
#6
MQTT / Aw: Bestway LayZSpar Wirlpool
Letzter Beitrag von Tueftler1983 - 14 Mai 2024, 21:41:18
Ne mit perl mag ich mich nicht noch auseinander setzen, denke es ist so auch schon ein gut brauchbares Device geworden.

Kann man dies anderen als Templates zur Verfügung stellen?
#7
MQTT / Aw: jsonMap und Unterstriche m...
Letzter Beitrag von Otto123 - 14 Mai 2024, 21:31:23
Hallo Rainer,

liegt das am vierten Parameter? siehe Wiki
Am Unterstrich liegt es mMn nicht.

Gruß Otto
#8
MQTT / [gelöst]: jsonMap und Unterstr...
Letzter Beitrag von dora71 - 14 Mai 2024, 21:22:00
Hallo zusammen,

nach dem ich gefühlt schon alles probiert habe und mir auch die Suchfunktion nicht weiterhelfen konnte, könnt Ihr mir vielleicht folgende Frage beantworten (dann muss ich nicht noch weiter erfolglos probieren).

Ich habe in einem MQTT2-Device ein Reading aus einem fürchterlich verschachtelten JSON erfolgreich extrahieren können mittels json2nameValue. Das erzeugte Reading heißt:

solarbank_info_solarbank_list_1_battery_power
Mein readingsList dazu sieht wie folgt aus:

readingList fhem/mein/mqtt/pfad/solix/scenInfo:.* { json2nameValue($EVENT,'',$JSONMAP,'list_1_battery_power') }
Soweit so gut. Wenn ich jetzt versuche, mit dem Attribut jsonMap das lesbarer zu machen, dann bekomme ich in dem alten Reading keine neuen Werte mehr, aber das neue Reading wird auch nicht erzeugt. Ich habe es sogar mit setreading manuell erstellt, aber es erfolgt auch keine Werteänderung.

Versucht habe ich es mit:

attr meinmqtt2device jsonMap solarbank_info_solarbank_list_1_battery_power:batterieladung
und hätte jetzt ein Reading batterieladung erwartet.

Wo habe ich meinen Denkfehler? Oder funktioniert jsonMap nicht mit Unterstrichen?

Danke für die Denkansätze. Grüße Rainer.
#9
Automatisierung / mal wieder unerwartete Ergebni...
Letzter Beitrag von Nighthawk - 14 Mai 2024, 20:59:36
Hallo zusammen,

leider bekomme ich mal wieder nach dem Durchführen von diffValue nicht das rechnerisch korrekte Ergebnis.

Die MariaDB Version ist: 10.11.7-MariaDB-2ubuntu2 Ubuntu 24.04

Der Erste Wert im April ist 19280.49578266 und der letzte ist 19646.42993674, also müsste das Ergebnis ~365.934 betragen, was auch einem realistischen Wert entspricht, ich bekomme allerdings 1550.8313 als Ergebnis, was mehr als faktor 4 zu hoch ist.

Interessanter Weise werden die Monate davor korrekt berechnet, daher habe ich in der DB geschaut ob es Ausreißer gibt die kleiner 19280.49578266 oder größer 19646.42993674 in dem Monat existieren, das ist nicht der Fall:

select * from history where device="Stromzaehler" and reading = "total_consumption" and value > 19646.42993674 and timestamp like "2024-04%";
Empty set (5.042 sec)

select * from history where device="Stromzaehler" and reading = "total_consumption" and value < 19280 and timestamp like "2024-04%";
Empty set (5.008 sec)

Hier ist das verbose5 log, natürlich stark gekürzt (original hat ~600000 Zeilen..):

2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - -------- New selection ---------
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Command: diffValue writeToDB
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - FullDay option: 0
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - Timestamp begin epocheseconds: 1711922400
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Timestamp begin human readable: 2024-04-01 00:00:00
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - Timestamp end epocheseconds: 1714514399
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Timestamp end human readable: 2024-04-30 23:59:59
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - act year:  2024, act month: 04, days in month: 30
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - Daylight savings changed: 0 (from "Mon Apr  1 00:00:00 2024" to "Wed May  1 00:00:00 2024")
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Aggregation: month
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - BlockingCall with PID "1636504" started
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Database Model: MYSQL
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Database connect - user: fhemDB, UTF-8 option set: yes
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - Database Character set is >utf8mb3_bin<
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - simple do statement: set names "utf8mb3" collate "utf8mb3_bin"
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - IsTimeSet: 1, IsAggrSet: 1
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - Timestamp-Array:
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - Devices for operation -
2024.05.14 20:31:41 5: DbRep Rep.Monatsverbrauch.Strom - Readings for operation -
2024.05.14 20:31:41 4: DbRep Rep.Monatsverbrauch.Strom - SQL execute: SELECT TIMESTAMP,VALUE FROM history where ( DEVICE = 'Stromzaehler' ) AND ( READING = 'total_consumption' ) AND TIMESTAMP >= '2024-04-01' AND TIMESTAMP <= '2024-04-30 23:59:59' ORDER BY TIMESTAMP;
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - data of row_array result assigned to fields:
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:04, VALUE: 19280.49578266, DIFF: 0
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:09, VALUE: 19280.49666019, DIFF: 0.000877530001162086
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:14, VALUE: 19280.49752623, DIFF: 0.000866039998072665
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:19, VALUE: 19280.49841448, DIFF: 0.000888250000571134
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:24, VALUE: 19280.49929763, DIFF: 0.000883149998117005
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:29, VALUE: 19280.50019486, DIFF: 0.000897230002010474
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:34, VALUE: 19280.50109536, DIFF: 0.000900499999261228
2024.05.14 20:31:43 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-01_00:00:39, VALUE: 19280.50198603, DIFF: 0.000890670002263505
.
.
.
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:58:50, VALUE: 19646.42048626, DIFF: 0.000727200000255834
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:58:55, VALUE: 19646.42121203, DIFF: 0.000725769998098258
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:00, VALUE: 19646.42194152, DIFF: 0.000729489998775534
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:05, VALUE: 19646.42266971, DIFF: 0.000728189999790629
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:10, VALUE: 19646.42339546, DIFF: 0.000725750000128755
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:15, VALUE: 19646.42412227, DIFF: 0.000726810001651756
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:20, VALUE: 19646.42484861, DIFF: 0.000726340000255732
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:25, VALUE: 19646.42557595, DIFF: 0.000727340000594268
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:30, VALUE: 19646.42630304, DIFF: 0.000727089998690644
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:35, VALUE: 19646.42703095, DIFF: 0.000727909999113763
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:40, VALUE: 19646.42775619, DIFF: 0.000725240002793726
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:45, VALUE: 19646.42848113, DIFF: 0.000724939996871399
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:50, VALUE: 19646.42920896, DIFF: 0.000727829999959795
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - Runtimestring: 2024-04, DEVICE: Stromzaehler, READING: total_consumption, TIMESTAMP: 2024-04-30_23:59:55, VALUE: 19646.42993674, DIFF: 0.000727780003217049
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom - print result of diffValue calculation before encoding ...
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - count of values used for calc:
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - Database Model: MYSQL
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - Database connect - user: fhemDB, UTF-8 option set: yes
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - SQL execute: SHOW VARIABLES LIKE 'collation_database'
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - Database Character set is >utf8mb3_bin<
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - simple do statement: set names "utf8mb3" collate "utf8mb3_bin"
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom -> Primary Key used in fhem_long.history: 1 (TIMESTAMP,DEVICE,READING)
2024.05.14 20:31:48 5: DbRep Rep.Monatsverbrauch.Strom -> Primary Key used in fhem_long.current: 0 (none)
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - SQL prepare: INSERT IGNORE INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - SQL prepare: UPDATE history SET TIMESTAMP=?, DEVICE=?, READING=?, TYPE=?, EVENT=?, VALUE=?, UNIT=? WHERE TIMESTAMP=? AND DEVICE=? AND READING=?
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - SQL prepare: INSERT INTO current (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - SQL prepare: UPDATE current SET TIMESTAMP=?, DEVICE=?, READING=?, TYPE=?, EVENT=?, VALUE=?, UNIT=? WHERE TIMESTAMP=? AND DEVICE=? AND READING=?
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - begin transaction
2024.05.14 20:31:48 4: DbRep Rep.Monatsverbrauch.Strom - UPDATE history: 2024-04-30 23:59:55|Stromzaehler|OBIS|calculated|diff_month_total_consumption|1550.8313|, RESULT: 0
2024.05.14 20:31:49 4: DbRep Rep.Monatsverbrauch.Strom - INSERT history: 2024-04-30 23:59:55|Stromzaehler|OBIS|calculated|diff_month_total_consumption|1550.8313|, RESULT: 1
2024.05.14 20:31:49 4: DbRep Rep.Monatsverbrauch.Strom - transaction committed
2024.05.14 20:31:49 3: DbRep Rep.Monatsverbrauch.Strom - number of lines updated in >logdb_long<: 0
2024.05.14 20:31:49 3: DbRep Rep.Monatsverbrauch.Strom - number of lines inserted into >logdb_long<: 1
2024.05.14 20:31:49 5: DbRep Rep.Monatsverbrauch.Strom - BlockingCall PID "163650


#10
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von hazelnut - 14 Mai 2024, 20:58:10
Hallo in die Runde!

es ist unglaublich, wie schnell ihr beim Antworten seid :-) Danke dafür!

Zu allererst: Mein Setup ist ein Fronius WR (Gen24) mit einer BYD Batterie. Die Batterie soll 6000 - 8000 Ladezyklen bei einer Leistungdegradation auf 90% haben. Um die Zyklenzahl mache ich mir also nur bedingt Sorgen. Allerdings sehe ich zu, dass die Lade- und Entladeströme möglichst eher klein sind. Es ist halt ein chemischer Prozess...

Das Ganze hat auch eher weniger was mit Grün zu tun. Die Anlage ist da, bezahlt und soll jetzt schlicht ihr Geld durch die Minimierung von extern zu besorgender Energie bzw. Energieträgern verdienen. Der Eigenbedarf (Strom) ist sicher der größte Teil davon und nach bisherigen Erkenntnissen in min 9 Monaten + einzelne Tage vollständig gedeckt. Rückspeisung ins Netz möchte ich vermeiden, die Überschussenergie soll soweit möglich sinnvoll genutzt werden. Der Verbrauch anderer Energieträger (konkret vor allem Öl) soll, wie gesagt, minimiert werden. Bis hierhin reden wir also über stumpf finanzielle Gründe. Davon mal abgesehen sehe ich einen Mehrwert in der Autarkie sowie den Variationsmöglichkeiten beim Einsatz von (Primär)Energieträgern.

Leider erlaubt das verbaute System nicht ganz die Freiheitsgrade wie die Victron/Pylontech - Lösung von DS_Starter. Zumal die MultiPlus ja nicht mal ein Netz brauchen sondern auch einen 3phasigen Genarator "akzeptieren" ... ;-) (ja, ein bisschen neidisch bin ich da schon)

However - Eure Ideen und Anregungen sind super. Ich bin nicht wirklich gut in Perl, aber es hilft ja nichts. Ich werde also mal schauen, dass ich mir die Lösung aus #588 einmal genauer anschaue.

@DS_Starter: vielen Dank für die Hinweise und auch für deine Config. Da hab ich was zum drüber nachdenken und rumtüfteln :-)

@kask: aktuell kostet die kWh Heizöl ca. 10 ct. Für die Rückspeisung von Strom ins Netz würde ich irgendwas bei 8ct/kWh bekommen. Wenn ich den selbst erzeugten Strom (20 Jahre bei durchschnittlich erwarteten Ertrag) nehme bin ich unter den 10 ct/kWh die mich das Öl kostet. Aber nur, wenn der Eigenbedarf maximiert ist. Für Wärmwasser (inkl. "Verluste" durch im Kreis pumpen) gehen (naja, gingen) erstaunliche 1,5 l/Tag drauf (+-). Das irgendwie erschreckend viel, wenn man das mal so zusammenzählt. Und ja, die Ölheizung hat schon 26 Jahre, darf aber nach aktuellem Gesetz noch drin bleiben (Niedertemperaturölkessel). Ich hab aber den Verdacht, dass das absehbar nicht günstiger wird ... Und sicher hat es auch einen Grund, warum mach nach den neuen Gesetzen entsprechende Rechnungen für eingekaufte Energieträger aufheben muss...

Wir werden sehen. Und bis dahin wird jetzt Bestand geschaffen, der dann hoffentlich Schutz genießt.

In diesem Sinne: Danke euch, und bei weiteren Ideen immer her damit.

Ach so, ich melde mich, wenn ich das für mich gelöst habe.

Hazel