Stromzähler,Gaszähler und wasserzähler

Begonnen von Sebastian84, 02 Juli 2024, 23:09:56

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#45
Dass Events kommen habe ich ja auch eingeklammert und geschrieben, dass es am Leerzeichen liegt...

Was soll das sein, was du zuletzt gepostet hast?

Ein userReadings zu einem bestehenden Reading des Devices?
Ohne Trigger: nicht gut
Ob das generell geht: keine Ahnung

Wenn userReadings: ReadingName.* -> was soll das sein?
Denke nicht, dass das ist was du willst.

Ich weiß auch nicht, ob ReadingsNum innerhalb von split so geht (abgesehen davon, dass unnötig Klammern sind und die Variable so wie du sie verwendest ist auch unnötig bzw. hätte ich eine Variable genommen, um ReadingsNum zwischenzuspeichern).

Warum willst du unbedingt Einheiten im Readingwert haben?
Weiterverarbeiten geht doch ohne Einheit viel einfacher. Anzeige kann man doch mit stateFormat anpassen inkl. deiner Umrechnung...

Code-Tags wären auch angenehmer zu lesen...

Und generell: was spricht gegen ausprobieren?

Du machst doch eh was/wie du denkst ohne zu lesen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Prof. Dr. Peter Henning

Zitat von: Sebastian84 am 01 August 2024, 18:01:03Das man im userreading das nur 12 Kwh rauskommt anstadt 12.000W
Es heißt außerdem kWh, nicht Kwh.

LG

pah


Sebastian84

Ich bekomme die Leistungswerte zb.7.200 würde gerne 7.2 stehen haben.

Ich hab schon mal über stateFormat das eingeben.

  {sprintf("%.2f kWh", (ReadingsVal($name,"Zaehler_countsOverall_EnergyDay",0)/1))}
Das geht auch nur dann geht mein StateFormat für die andern nicht mehr

Zaehlerstand:Zaehler_countsOveral_Meter_calc m³<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay kWh<br/>Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Gestern:Zaehler_countsOverall_EnergyDayLast kWh<br/>Kosten_Gestern:Zaehler_countsOverall_EnergyCostDayLast €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth kWh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_letzter_Monat:Zaehler_countsOverall_EnergyMonthLast kWh<br/>Kosten_letzter_Monat:Zaehler_countsOverall_EnergyCostMonthLast €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear kWh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear €

Prof. Dr. Peter Henning

Es ist doch wohl sonnenklar, dass stateFormat nur das ausgibt, was in den geschweiften Klammern steht. Wenn man eine komplexere Ausgabe haben will (siehe Beispiel), muss in den geschweiften Klammern eben ein String mit allen nötigen Elementen (also auch den HTML-Elementen) zusammengebaut werden.

LG

pah

Prof. Dr. Peter Henning

#49
ZitatEin userReadings zu einem bestehenden Reading des Devices?
Ohne Trigger: nicht gut
Ob das generell geht: keine Ahnung

Klar geht das, und macht auch Sinn. Ich verwende relativ häufig
<userreadingname>:none {}und befülle das dann aus Perl heraus. Wobei ich hoffe, dass ich die Frage richtig verstanden habe.

LG

pah

Sebastian84

userReadings

Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000} 


Wie kann ich da jetzt anfügen?
Einfch {....} und dann weiter {...}und so weiter?

Sebastian84

  FUUID      66aa418e-f33f-cdd4-35af-f1fad83eada07667
  NAME      Gasverbrauch
  NOTIFYDEV  Zaehler
  NR        508
  NTFY_ORDER 10-Gasverbrauch
  REGEXP    Zaehler:countsOverall.*
  STATE      Zaehlerstand:8179.6 m³<br/><br/>Verbrauch_Heute:10.800 kWh<br/>Kosten_Heute:1.062 €<br/><br/>Verbrauch_Gestern:15.000 kWh<br/>Kosten_Gestern:1.474 €<br/><br/>Verbrauch_Monat:60.000 kWh <br/>Kosten_Monat: 5.898 €<br/><br/>Verbrauch_letzter_Monat:5.900 kWh<br/>Kosten_letzter_Monat:0.580 €<br/><br/>Verbrauch_Jahr:67.080 kWh<br/>Kosten_Jahr:6.594 €
  TYPE      GasCalculator
  eventCount 15
  READINGS:
    2024-08-04 18:00:00  Zaehler_countsOveral_Meter_calc 8179.6
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterDay1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterDayLast 0.000
    2024-08-01 13:04:08  Zaehler_countsOverall_CounterMeter1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterMeterLast 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterMonth1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterMonthLast 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterYear1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterYearLast 0.000
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostDay 1.062
    2024-08-04 00:00:00  Zaehler_countsOverall_EnergyCostDayLast 1.474
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostMeter 6.594
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostMonth 5.898
    2024-08-01 00:00:00  Zaehler_countsOverall_EnergyCostMonthLast 0.580
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostYear 6.594
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyDay 10.800
    2024-08-04 00:00:00  Zaehler_countsOverall_EnergyDayLast 15.000
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyMeter 67.080
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyMonth 60.000
    2024-08-01 00:00:00  Zaehler_countsOverall_EnergyMonthLast 5.900
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyYear 67.080
    2024-08-04 18:00:00  Zaehler_countsOverall_FinanceReserve 473.406
    2024-08-04 18:00:00  Zaehler_countsOverall_Meter 5.600
    2024-08-04 18:00:00  Zaehler_countsOverall_MonthMeterReading 4
    2024-08-04 18:00:00  Zaehler_countsOverall_PowerCurrent 0.000
    2024-08-04 18:00:00  Zaehler_countsOverall_PowerDayAver 13.995
    2024-08-04 07:49:07  Zaehler_countsOverall_PowerDayMax 138.462
    2024-08-04 00:00:00  Zaehler_countsOverall_PowerDayMin 0.000
    2024-08-04 00:00:00  Zaehler_countsOverall_Vol1stDay 4.7
    2024-07-31 15:57:31  Zaehler_countsOverall_Vol1stMeter 0.01
    2024-08-01 00:00:00  Zaehler_countsOverall_Vol1stMonth 0.600
    2024-07-31 15:57:31  Zaehler_countsOverall_Vol1stYear 0.01
    2024-08-04 00:00:00  Zaehler_countsOverall_VolLastDay 4.700
    2024-07-31 15:57:31  Zaehler_countsOverall_VolLastMeter 0.000
    2024-08-01 00:00:00  Zaehler_countsOverall_VolLastMonth 0.600
    2024-07-31 15:57:31  Zaehler_countsOverall_VolLastYear 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_WFRDayMax 0
    2024-07-31 15:57:30  Zaehler_countsOverall_WFRDayMin 0
  system:
    DecimalPlace %.3f
    SiPrefixPowerFactor 1000
Attributes:
  BasicPricePerAnnum 0
  Currency  &#8364;
  DecimalPlace 3
  GasCounterOffset 0
  GasCubicPerCounts 0.1
  GasNominalHeatingValue 12
  GasPricePerKWh 0.0983
  GaszValue  1
  MonthOfAnnualReading 5
  MonthlyPayment 120
  ReadingDestination CalculatorDevice
  SiPrefixPower kW
  Volume    m³
  group      Gaszaehler
  icon      gasmeter2
  room      Gaszaehler
[left]  stateFormat Zaehlerstand:Zaehler_countsOveral_Meter_calc m³<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay kWh<br/>Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Gestern:Zaehler_countsOverall_EnergyDayLast kWh<br/>Kosten_Gestern:Zaehler_countsOverall_EnergyCostDayLast €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth kWh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_letzter_Monat:Zaehler_countsOverall_EnergyMonthLast kWh<br/>Kosten_letzter_Monat:Zaehler_countsOverall_EnergyCostMonthLast €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear kWh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear €
[/left]  userReadings Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000}
 

Ich hab versucht mehrere userreadings versucht zu erstellen. Aber sobalt ich ein zweiten userreading mache funktioniert nix mehr.
Ich möchte eine Formatierung für
Zaehler_countsOverall_EnergyDay
Zaehler_countsOverall_EnergyCostDay
 Zaehler_countsOverall_EnergyDayLast
aehler_countsOverall_EnergyCostDayLast
Zaehler_countsOverall_EnergyMonth
Zaehler_countsOverall_EnergyCostMonth
Zaehler_countsOverall_EnergyMonthLast
Zaehler_countsOverall_EnergyCostMonthLast
Zaehler_countsOverall_EnergyYear
Zaehler_countsOverall_EnergyCostYear
Bei Leistung eine Nachkomerstelle und bei den kosten 2 Nachkommerstellen

rabehd

Zitat von: Sebastian84 am 04 August 2024, 19:12:14Ich hab versucht mehrere userreadings versucht zu erstellen. Aber sobalt ich ein zweiten userreading mache funktioniert nix mehr.

1. commandref lesen, wenn unverständlich, dann
2. Frage mit Darstellung de eigenen Versuches posten
Auch funktionierende Lösungen kann man hinterfragen.

Prof. Dr. Peter Henning

ZitatIch hab versucht mehrere userreadings versucht zu erstellen. Aber sobalt ich ein zweiten userreading mache funktioniert nix mehr

Bitte was steht zu lesen, wenn man in der CommandRef nach dem Begriff "userReadings" sucht?

pah

Sebastian84

Verbrauch_Heute:Zaehler_countsOverall_EnergyDay.*:{sprintf("%.2f kWh", (ReadingsVal($name,"Zaehler_countsOverall_EnergyDay",0)/1))}
Kosten_Heute:Zaehler_countsOverall_EnergyCostDay.*{sprintf("%.2f €", (ReadingsVal($name,"Zaehler_countsOverall_EnergyCostDay",0)/1))}


Würde das so gehen?

Prof. Dr. Peter Henning

#55
 ::) Ich versuchs noch einmal...

Bitte was steht zu lesen, wenn man in der CommandRef nach dem Begriff "userReadings" sucht?

Und an welchen Stellen weicht der letzte Post von dieser wirklich guten Anleitung ab?

pah

Sebastian84

#56
Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000},
Zaehler_countsOveral_CostDay_calc1:Zaehler_countsOverall_CostDay.* {return ReadingsNum($name, "Zaehler_countsOveral_EnergyCostDay", 0) / 100} ,
Zaehler_countsOveral_EnergyDayLast_calc2:Zaehler_countsOverall_EnergyDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_DayLast", 0)  /100},
Zaehler_countsOveral_CostDayLast_calc3:Zaehler_countsOverall_CostDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_CostDayLast", 0) /100}   

So???

Sebastian84

Ich bekomme zwar kein Fehler in der userreadings. Aber trotzdem werden keine zusätzlichen readings erstellt.

Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter 
Nur der geht.

MadMax-FHEM

#58
Zitat von: Sebastian84 am 04 August 2024, 22:02:48 Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000},
Zaehler_countsOveral_CostDay_calc1:Zaehler_countsOverall_CostDay.* {return ReadingsNum($name, "Zaehler_countsOveral_EnergyCostDay", 0) / 100} ,
Zaehler_countsOveral_EnergyDayLast_calc2:Zaehler_countsOverall_EnergyDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_DayLast", 0)  /100},
Zaehler_countsOveral_CostDayLast_calc3:Zaehler_countsOverall_CostDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_CostDayLast", 0) /100}   

So???

Naja nein.
Weil es z.B. "Zaehler_countsOverall_CostDay" und "Zaehler_countsOverall_CostDayLast" gar nicht als Reading gibt (zumindest nicht in deinem letzten list) und damit auch kein Event dazu, ergo auch keine "Berechnung" des userReadings, zumindest nicht bzgl. "Zaehler_countsOveral_CostDay_calc1" und "Zaehler_countsOveral_CostDayLast_calc3". Neben dem, dass mindestens diese Trigger nicht passen, wird dann das hier "ReadingsNum($name, "Zaehler_countsOverall_CostDayLast", 0)" auch immer 0 liefern, da es ja "Zaehler_countsOverall_CostDayLast" nicht gibt...

Kommen denn Events zu "Zaehler_countsOverall_Meter" bzw. "Zaehler_countsOverall_EnergyDayLast"?
Wenn keine Events, dann auch keine userReadings.
Zaehler_countsOverall_EnergyDayLast -> klingt so als würde das nicht so oft gesetzt (laut Zeitstempel eben nur um Mitternacht)...
Hier "Zaehler_countsOveral_EnergyDayLast_calc2" würde zwar getriggert aber auch das "ReadingsNum($name, "Zaehler_countsOverall_DayLast", 0)  /100}" liefert immer 0, weil es "Zaehler_countsOverall_DayLast" nicht gibt.

Schreibst du die Readingnamen aus dem Kopf und machst dabei Schreibfehler? Bei copy/paste kann das doch gar nicht passieren.
Die Namen usw. müssen schon richtig sein und Sinn machen, wie soll das sonst funktionieren!?

Das ist ja, wie wenn du im Telefonbuch nachschaust und einfach ein paar Zahlen änderst, dann kommst du doch auch nicht bei dem an, den du anrufen wolltest. U.U. hebt sogar jemand ab, aber sicher nicht der, den du erreichen wolltest, es kann aber auch niemand abheben, bzw. die Ansage kommen: Nummer nicht vergeben...

Ob noch mehr Fehler drin sind habe ich nicht geschaut, reicht auch so...

Trotzdem noch mal: warum das ganze userReadings-Zeug? Wenn es nur um die Anzeige geht: das kann man OHNE userReadings direkt auch in stateFormat machen.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

   Zaehlerstand:Zaehler_countsOveral_Meter_calc m³<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay kWh<br/>Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Gestern:Zaehler_countsOverall_EnergyDayLast kWh<br/>Kosten_Gestern:Zaehler_countsOverall_EnergyCostDayLast €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth kWh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_letzter_Monat:Zaehler_countsOverall_EnergyMonthLast kWh<br/>Kosten_letzter_Monat:Zaehler_countsOverall_EnergyCostMonthLast €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear kWh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear € Das wollte ich auch über State Format. Ich weißnur nicht wie ich das da rein schreiben muss. Das bei KWh eine Stelle hintern Komma Angezeigt wird und bei € zwei Stellen