Hallo zusammen,
irgendwie kann ich nichts dazu finden. Weder das es Probleme macht, noch das man etwas beachten sollte.
Hintergrund:
Ich habe eine Photovoltaikanlage mit SmartMeter und Wechselrichter. Beide Geräte sind in fhem eingebunden und funktionieren einwandfrei.
Nun ist es ungünstigerweise so, dass der SmartMeter nur die Differenz (erzeugter Strom - Eigenverbrauch) anzeigt und der Wechselrichter nur den erzeugten Strom.
Da ich aber auch den Verbrauch sehen und protokollieren möchte, habe ich einen dummy "verbrauch.dummy" erstellt.
Dieser wird bei Änderungen an dem Wert des Wechselrichters oder SmartMeters berechnet und gesetzt.
Soweit funktioniert das auch.
Nun habe ich die drei Werte (Produktion, Verbrauch, Summe) in TabletUI als reine labels eingetragen.
<tr>
<td class="pvwerte-td-label">Produktion:</td>
<td class="pvwerte-td-wert">
<div data-type="label"
data-device="Wechselrichter"
data-unit=" W"></div>
</td>
</tr>
<tr>
<td class="pvwerte-td-label">Verbrauch:</td>
<td class="pvwerte-td-wert">
<div data-type="label"
data-device="verbrauch.dummy"
data-unit=" W"></div>
</td>
</tr>
<tr>
<td class="pvwerte-td-label">Summe:</td>
<td class="pvwerte-td-wert">
<div data-type="label"
data-device="SmartMeter"
data-unit=" W"
data-limits=[-99999,0,9999]'
data-colors='["#FF6666","#66FF66","#00FF00"]'>
</div>
</td>
</tr>
Nun ist mir aufgefallen, dass der Wert des Verbrauchs nur nach dem Neuladen der Seite oder wenn ein neuer Long-Poll startet aktualisiert wird.
Heute habe ich dann etwas gesucht ... nichts dazu gefunden.
Daher habe ich folgendes (ohne Erfolg) ausprobiert.
- In der fhem-Oberfläche die Aktualisierungen kontrolliert. => wird bei einer Änderung der Ausgangswerte sofort aktualisiert.
[li]Auf Verdacht ob evtl. STATE/state nicht bei TabletUI von einem Event versorgt wird, ein UserReading zusätzlich am Dummy aus den Notifys erzeugt: [/li][/list]
fhem "setreading verbrauch.dummy verbrauch ".$verbrauch;
und das Reading in TabletUI mit
data-get="verbrauch"
genutzt => keine Aktualisierung[/li]
- Versuche mit timestamp-on-change-reading, event-on-change-reading und event-on-update-reading für state und/oder verbrauch => keine Aktualisierung
Könnte mir jemand helfen, was ich falsch mache?
Wahrscheinlich ist der Dummynamen "verbrauch.dummy" mit Punkt in der Mitte etwas unglücklich.
Gib mal ein list vom Dummydevice bitte
Zitat von: Haecksler am 19 April 2017, 15:23:16
Wahrscheinlich ist der Dummynamen "verbrauch.dummy" mit Punkt in der Mitte etwas unglücklich.
Warum sollte ein Punkt ein Problem sein? ???
Wenn dem so ist, ändere ich das bzw. teste das gleich mal.
Komme von python, da habe ich nicht groß darüber nachgedacht.
Zitat von: CoolTux am 19 April 2017, 15:26:52
Gib mal ein list vom Dummydevice bitte
Na klar: :D
Internals:
NAME verbrauch.dummy
NR 337
STATE -1604.5
TYPE dummy
Helper:
Dblog:
State:
Logdb:
TIME 1492618689.87781
VALUE -1604.5
Verbrauch:
Logdb:
TIME 1492618689.88333
VALUE -1604.5
Readings:
2017-04-19 18:18:09 state -1604.5
2017-04-19 18:18:09 verbrauch -1604.5
Attributes:
readingList state verbrauch
room UG.Vorrat
timestamp-on-change-reading verbrauch
Nicht wundern, es läuft gerade der Trockner ;)
OK sehe gerade das Problem. Setreading löst kein Event aus. Schaue dir bitte readingList und readingSet für Dummy an
Hallo alle zusammen.
Ich habe das gleiche Problem wie hier oben beschrieben.
Aber habe jetzt lange gesucht rum probiert....
Allerdings alles ohne Erfolg.
Kann mir irgendwer erklären was ich mit meinem dummy machen muss, damit er sofort im TabletUI aktualisiert wird.
Leider findet man zu dem Bereich irgendwie nichts.
Danke für die Hilfe,
Gabel
Was genau machst Du denn mit Deinem Dummy
set dummy 12
sollte den state von deinem dummy auf 12 stellen und es sollte ein Event ausgelöst werden. Schau doch mal was genau im Eventmonitor zu sehen ist und gib mal ein list vom dummy
Also bei mir funktioniert das mit keiner Version, wenn ich einen dummy nutze.
z. B.fhem "set verbrauch_dummy verbrauch ".$verbrauch;
Das mit dem Eventmonitor werde ich noch testen.
Oder war mit readingSet etwas anderes gemeint? Den Befehl als solchen scheint es nicht zu geben.
Aber das ein setreading kein Event auslöst, scheint nicht zu stimmen.
Habe jetzt testweise einfach mal ein "UserReading" bei dem SmartMeter mit
fhem "setreading SmartMeter verbrauch ".$verbrauch;
getestet.
Das funktioniert und der Wert im TabletUI aktualisiert sich zeitnah.
Da scheint noch was anderes dahinter zu stecken.
Wenn Dein Dummy nur einen einzigen Wert darstellen soll, dann reich es einfach ein Dummy an zulegen ohne weitere Attribute zum setzen von Werten.
Wenn du das hast machst du einfach in der FHEMWEB Konsole ein
set dummyVerbrauch 12
Damit wird der state vom Dummy auf 12 gesetzt und ein Event sollte ausgelöst werden.
Das testest du jetzt erstmal
Bei mir war das die erste Lösung.
Aber TabletUI aktualisiert die Werte nicht bzw. nur bei einem neuen LongPoll.
Habe gerade mal das im Eventmonitor beobachtet.
Wenn ich per Hand "set verbrauch_dummy 12" ausführe, taucht genau eine Zeile im Eventmonitor auf, aber TabletUI aktualisiert den Wert nicht.
Dann habe ich aber auch gesehen, dass bei einer Änderung per Notify immer 76 Events eingetragen werden???
Was kann das sein?
Gib mal ein list vom aktuellen dummy