JSONMETER - YouLess -Readings zu einem definierten Zeitpunkt [gelöst]

Begonnen von CoComp, 05 März 2015, 13:11:26

Vorheriges Thema - Nächstes Thema

CoComp

Hallo, ich möchte meinen Youless fix am Ende einer Uhrzeitviertelstunde auslesen. Also prinzipiell schon alle 900 Sekunden, aber eben nicht als Intervall sondern beispielsweise um 00:14:59, 00:29:59, 00:44:59....

Hintergrund ist, dass ich aus den Werten den Lastgang aus den sogenannten Viertelstundenwerten ermitteln muss, also dem Verbrauch der Viertelstunde zwischen beispielweise 00:14:59 und 00:29:59.

Ich stehe gerade voll auf dem Schlauch, kann mir hier jemand auf die Sprünge helfen?

Danke und viele Grüße
Jörn Cohrs

CoComp

#1
Hallo zusammen,

ist die Frage so "dusselig" (ich habe hier im Forum eine Lösung gesucht, den Einsteigerleitfaden vor und zurück gelesen und diverse Möglichkeiten getestet....) oder ist die Lösung so kompliziert, dass sich hier keimer an eine Antwort wagt.

Meine NOTLÖSUNG aktuell, ich habe einen Intervall von 900s eingestellt und habe manuell um 8:59:50 gestartet - aber elegant ist anders ;-)

Ich freue mich auf h Eute Hilfe.

VG
Jörn

nesges

Zitat von: CoComp am 06 März 2015, 13:19:09ist die Frage so "dusselig"

Du lieferst halt nicht allzu viele Infos über deine derzeitige Konfiguration mit. Wenn's irgendwas mit at zutun hat, siehe alignTime in http://fhem.de/commandref.html#at

CoComp

Hallo,

was fehlt dir an Infos? Ich habe einen Youless erfolgreich eingebunden, der meinen Stromzähler alle 900 Sek. abliest, korrekte Werte liefert und ins Log schreibt. Alles fein soweit. Ich möchte nur die Zeitpunkte des Readings festlegen - wie beschreiben.....

Viele Grüße
Jörn

nesges

#4
Das was in http://forum.fhem.de/index.php/topic,16311.0.html beschrieben ist, also mindestens das define deines Devices. Nicht jeder kennt jedes Modul und weiss spontan was mit "Youless" anzufangen. Aber meine Neugier hat gesiegt. JSONMETER kann das offenbar nicht von Haus aus, ich würde folgendes versuchen:

define powermeter JSONMETER ITF 192.168.178.20 0
define powermeterPoll at +*00:15:00 set powermeter INTERVAL 900
attr powermeterPoll alignTime 00:00


Das JSONMETER startet zunächst im manuellen Modus und wird erst durch ein an 00:00 ausgerichtetes, viertelstündlich laufendes at eingetaktet. Evtl. macht's hier Sinn ein höheres oder niedrigeres Interval für's JSONMETER zu setzen, da's ja ohnehin alle 15min zurück gesetzt wird. Kommt drauf an, ob der erste Request sofort oder erst nach Ablauf des Intervals gesendet wird. Aber ich kenne JSONMETER wie gesagt nicht.

CoComp

Das scheint ein Schritt in die richtige Richtung zu sein.

define LS110 JSONMETER LS110 192.168.178.14 0
define LS110Poll at +*00:15:00 set LS110 INTERVAL 900
attr LS110Poll alignTime 00:00


Beim LS110 wird jetzt "pünktlich" der Intervall auf den gewünschten Wert gesetzt - das Reading aber nicht ausgeführt. Ich habe die Intervallzeit variiert:

Einmal mit 850, so dass  INTERVAL abläuft, bevor es wieder neu gesetzt wird und einmal mit 950, so dass INTERVAL abläuft, nachdem der Wert neu geschrieben wird.
Aber es erfolgt keine Aktualisierung des Readings.

Was fehlt noch?

Viele Grüße
Jörn

frank

ein regelmässiges at das ein interval setzt. klingt irgendwie schräg.

ich kenn das modul nicht, aber ein blick ins commandref brachte dies:
Zitat[poll-interval]
    Optional. Default is 300 seconds. Smallest possible value is 10. With 0 it will only update on "manual" request.
also würde ich den manuellen mode mit dem "at" nutzen. poll-interval => 0.

aber aus der beschreibung geht nicht hervor, wie nun ein manuelles polling gestartet wird. andere module haben dazu einen befehl wie "set my_modul update". eventuell fehlt hier nur die beschreibung. du kennst dich da besser aus.

define LS110Poll at +*00:15:00 set LS110 update
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CoComp

Der Ansatz
define LS110Poll at +*00:15:00 set LS110 update funktioniert, aber jetzt wird doch jetzt eigentlich nur die ursprüngliche Intervallfunktion von LS110 192.168.178.14 900 anders erreicht.

Ich möchte aber, dass die Ablesung immer wenige Sekunden vor der vollen Stunde, Viertelstunde, etc. erfolgt. Ich brauche also einen Startzeitpunkt (Beispielsweise 00:59:50) und dann alle 15 Minuten ein Reading. Bei einem Neustart von FHEM bsp. würde dann bis zum nächsten Erreichen von 00:59:50 die Logik nicht neu gestartet, so dass ich keine (brauchbaren) Werte erhalte.


CoComp

Danke für die Hinweise, auf der Basis habe ich jetzt die Lösung gefunden, die schlank ist und funktioniert:

define LS110Poll at +*00:15:00 set LS110 update
attr LS110Poll alignTime 00:14:59


Jetzt bekomme ich immer 1 Sekunden vor Ablauf der vollen Viertelstunde ein Reading.

Nochmals Danke!