Userreading nur zu einer bestimmten Uhrzeit

Begonnen von bajogger, 30 August 2023, 11:48:48

Vorheriges Thema - Nächstes Thema

bajogger

Habe einen Shelly Pro 3EM Stromzähler. Der gibt unter anderem das Reading Total_Energy (Komplette Stromverbrauch) aus
Möchte nun zu einer bestimmten Uhrzeit dieses Reading in ein Userreading schreiben

Mit diesem Code habe ich das UserReading angelegt. StromZaehler ist das Device
attr StromZaehler userReadings Tagesverbrauch { ReadingsVal("Total_Energy","value",0) }
Wie bringe ich das UserReading dazu nur um 23:59Uhr erzeugt zu werden

Hoffe auf Hilfe



FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

MadMax-FHEM

#1
Zitat von: bajogger am 30 August 2023, 11:48:48Wie bringe ich das UserReading dazu nur um 23:59Uhr erzeugt zu werden
Statt einem userReadings ein at mit setreading...

EDIT: und wenn ich mir das userReadings so ansehe. Bist du sicher, dass das funktioniert? Weil attr StromZaehler und dann aber ReadingsVal("Total_Energy", ... Wie heißt denn nun das Device? Oder hast du ein userReadings beim Device "StromZaehler" und "holst" die Daten vom Device "Total_Energy"? Und: userReadings OHNE TRIGGER: pfui! ;)

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)

Beta-User

Codeschnipsel ist für fertigen Code => verschieben! (Ja, kannst du selbst!)

Weitere Stichworte: statistics und delta-d....
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

RalfRog

Zitat von: Beta-User am 30 August 2023, 12:34:06Weitere Stichworte: statistics und delta-d....

Statistics hatten wir ja schon.
Ich hatte in deinem vorheigen Beitrag auch die Frage gestellt -> "je nachdem wo du hinwillst"....
Vermutlich kommt immer wieder eine Kleinigkeit dazu. Schau dir tatsächlich mal statistics an (nutze ich). Oder auch andere Module (ich nutze davon keins und hab daher keinen Tipp) die sich mit Energiezählern (Zählern) beschäftigen.

Da ist vermutlich etwas dabei, was deinen Bedarf deckt.

Wenn es schnell sein muss wie MadMax-FHEM schrieb ein at um 23:59 (ungetestet) mit dem Ausführungsteil
"setreading StromZaehler Tagesverbrauch {ReadingsVal("StromZaehler","Total_Energy",0)}"

Ist dann aber der absolute Wert und kein Tagesverbrauch, da braucht du dann Deltawerte.


FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

RalfRog

Zitat von: Beta-User am 30 August 2023, 12:34:06Codeschnipsel ist für fertigen Code => verschieben! (Ja, kannst du selbst!)
Falls du das Verschieben nicht findest: unten links
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

bajogger

#5
ZitatEDIT: und wenn ich mir das userReadings so ansehe. Bist du sicher, dass das funktioniert? Weil attr StromZaehler und dann aber ReadingsVal("Total_Energy", ... Wie heißt denn nun das Device? Oder hast du ein userReadings beim Device "StromZaehler" und "holst" die Daten vom Device "Total_Energy"? Und: userReadings OHNE TRIGGER: pfui! ;)
Richtig funktioniert nicht
attr StromZaehler userReadings Tagesverbrauch { ReadingsVal("StromZaehler","Total_Energy",0)}Funktioniert aber. Nützt allerdings nur zu Lernzwecken

setReading funktioniert noch nicht

*16:57:00 "setreading StromZaehler Tagesverbrauch {ReadingsVal("StromZaehler","Total_Energy",0)}"bringt
{ReadingsVal("StromZaehler:Total_Energy",0)}
als Ergebnis und keinen Wert

Vermutlich lächerlicher Fehler für euch Profis.

PS: 16:57 Uhr ist natürlich zu Testzwecken
FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

betateilchen

lass die Anführungszeichen um den FHEM Befehl weg

Und beschäftige Dich einfach mal mit der richtigen Syntax für "FHEM Befehle" im Vergleich zu "perl-Funktionen".
Das würde uns allen das Leben einfacher machen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bajogger

*17:36:00 setreading StromZaehler Tagesverbrauch {ReadingsVal("StromZaehler","Total_Energy",0)}
bringt das Gleiche.

Aber will niemand das Leben schwer machen. Finde das schon raus
FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

rabehd

{ReadingsVal("StromZaehler","Total_Energy",0)} in der Befehlszeile bringt was?
setreading StromZaehler Tagesverbrauch {ReadingsVal("StromZaehler","Total_Energy",0)} in der Befehlszeile bringt was?
Auch funktionierende Lösungen kann man hinterfragen.

Beta-User

...das dürfte fehlerfrei durchlaufen, aber das Ergebnis ist nicht das, was der TE haben will...
 
Such mal in der commandref (https://commandref.fhem.de/#set) nach:
ZitatFrom featurelevel 5.7 on the set and setreading command replaces:
....
Das Stichwort heißt "set magic" (so man auf sowas steht).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

Mal wieder das Problem mit einer komplett widersinnig geforderten Klammersetzung.

Vermutlich so:

setreading StromZaehler Tagesverbrauch {(ReadingsVal("StromZaehler","Total_Energy",0))}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bajogger

ZitatCodeAuswählen
{ReadingsVal("StromZaehler","Total_Energy",0)}
in der Befehlszeile bringt was?
59.8079 kWh

ZitatCodeAuswählen
setreading StromZaehler Tagesverbrauch {ReadingsVal("StromZaehler","Total_Energy",0)}
in der Befehlszeile bringt was?
{ReadingsVal("StromZaehler","Total_Energy",0)}

Erstes kommt als Ergebnis direkt an der Befehlszeile
Zweites erneuert das Reading im Device

FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

TomLee

ZitatMal wieder das Problem mit einer komplett widersinnig geforderten Klammersetzung.

Ohne die gäbs noch weniger Popcorn !

bajogger

setreading StromZaehler Tagesverbrauch {(ReadingsVal("StromZaehler","Total_Energy",0))} :)

Danke. Schaue ich mir jetzt in Ruhe an um was zur Klammersetzung zu lernen.

Danke an Alle
FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

TomLee

ZitatSchaue ich mir jetzt in Ruhe an um was zur Klammersetzung zu lernen.

Lass es, beschäftige dich mit Perl, das hier ist ein "Sonderfall".