Hauptmenü

Dummy Switch httpmod reading

Begonnen von crazysky, 17 Juli 2019, 17:10:19

Vorheriges Thema - Nächstes Thema

crazysky

Hallo,

mein Titel spiegelt schon meine Ahnungslosigkeit wieder ;-)
Ich habe drei Dinge erfolgreich geschafft:
1.) Status-Abfrage meines ETA-Heizungskessels durch auslesen der entsprechenden lan-url
2.) Dummy Switch zum ein- und ausschalten des Heizungskessels
3.) Vorläufige Visualisierung in FUIP

Wenn ich das nun visualisiere, dann leuchtet das symbol immer, wenn ich einmal klicke für anschalten und es geht wieder aus, wenn ich erneut klicke um auszuschalten.
Leider bekommt es aber nicht mit, wenn der Kessel von Hand an der Heizungssteuerung oder automatisch durch die Heizung zwischenzeitlich an oder ausgeschalten wird.
Wie kann man das vereinen? Also ein Schalter, der nicht stumpf seinen Zustand von an nach aus und umgekehrt wechselt, sondern der den tatsächlichen STatus miteinbezieht.
Im Folgenden, was ich bereits habe:

Reines Auslesen des Kesselstatus (Ein/Aus)
defmod KesselStatusEta HTTPMOD http://192.168.178.28:8080/user/var/40/10021/0/0/12080 300
attr KesselStatusEta userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr KesselStatusEta alias Eta Kessel Status
attr KesselStatusEta enableControlSet 1
attr KesselStatusEta event-min-interval KesselStatus_Eta:3600
attr KesselStatusEta event-on-change-reading .*:1
attr KesselStatusEta group ETA
attr KesselStatusEta reading01Name KesselStatus_Eta
attr KesselStatusEta reading01Regex strValue="([a-zA-Zü ]*)"
attr KesselStatusEta room Heizung
attr KesselStatusEta stateFormat KesselStatus_Eta

setstate KesselStatusEta Aus
setstate KesselStatusEta 2019-07-17 17:00:20 KesselStatus_Eta Aus


die ausgelesene site:
<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value uri="/user/var/40/10021/0/0/12080" strValue="Ein" unit="" decPlaces="0" scaleFactor="1" advTextOffset="1802">1803</value>
</eta>


Mein dummy zum ein- und ausschalten:
defmod KesselEta dummy
attr KesselEta room Heizung
attr KesselEta setList on off

setstate KesselEta on
setstate KesselEta 2019-07-17 17:01:44 state on

(setzen von value)
defmod on_KesselEta notify KesselEta:on {GetFileFromURL("http://192.168.178.28:8080/user/var/40/10021/0/0/12080",5,"value=1803",0,4)}

setstate on_KesselEta 2019-07-17 17:01:44
setstate on_KesselEta 2019-07-16 22:31:23 state active


defmod off_KesselEta notify KesselEta:off {GetFileFromURL("http://192.168.178.28:8080/user/var/40/10021/0/0/12080",5,"value=1802",0,4)}

setstate off_KesselEta active
setstate off_KesselEta 2019-07-16 22:31:23 state active



Kann mir jemand helfen oder ein Beispiel nennen, welches vergleichbar ist?
Grüße

schwatter

Das Httpinterface ist, wenn du den Kessel ausschaltest noch an? Liest der Httpmod den Status "off" dann ein?
Wenn ja, probier mal deinem Dummy um ein userreading zu erweitern

attr KesselEta userReadings state ReadingsVal("KesselStatusEta ","state",0)

MadMax-FHEM

Wenn das Auslesen des Status mittels HTTPMOD funktioniert, dann kannst du auch im HTTPMOD Modul die "on/off" Befehle "machen".

Du kannst damit nicht nur Abfragen, sondern auch get Requests etc. absetzen...

Damit sollte der Dummy nicht notwendig sein.

Den Status im Dummy "nachziehen" der auch steuert geht bestimmt "nach hinten los", da ja dann der Dummy wieder das off Notify auslöst beim "Nachsteuern"...

Leider habe ich noch keine Befehle an einem HTTPMOD benutzt...
Daher: commandref oder warten bis jemand liest der weiß wie das geht...

Du hast "eigenartige" userattr: event-min-interval, verbose, ...

Sollten eigentlich "eh da sein"...
Bzw. "nur" das Angeben der Attribute ist ja nur der halbe Weg. Es muss ja auch Code zur Bearbeitung der Attribute im Modul vorhanden sein... ;)

Aber wie geschrieben: die "nicht HTTPMOD-spezifischen" Attribute sollten "eh da sein"!

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)

MadMax-FHEM

#3
userReadings beim Dummy wird nichts bringen weil ein userReading nur getriggert ("berechnet"), wenn sich beim Device wo das userReading definiert ist ändert...
...und (leider) nicht, wenn sich an einem anderen Device (z.B. dem HTTPMOD) was ändert...

Per Notify würde gehen...
ABER: dann kann es eine dumme Schleife geben...
HTTPMOD zeigt an, dass geschalten wurde...
Notify "zieht" Dummy "nach"...
Notify auf Dummy reagiert und schaltet HTTPMOD...
usw. ;)

Einzig event-on-change-reading kann/könnte/würde das "einbremsen"... ;)

EDIT: daher besser auch die Schaltbefehle mittels desselben HTTPMOD und damit den Dummy weg... Wenn Du etwas zur Anzeige brauchst, dann evtl. readingsProxy anschauen...

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)

crazysky

Vielen Dank für die Anregungen und Antworten. Ich kann leider erst heute oder morgen Abend das ganze nocheinmal durchdenken und testen. Ich gebe dann Bescheid.
Vielen Dank.

MadMax-FHEM

Keine Hetze. ;)

Mal bei HTTPMOD comandref bzw. Wiki (oder auch im Forum) mal schauen wie man mit HTTPMOD auch auf "klick" get etc. absetzen kann...

Damit sollte das ja dann konsistent im bereits vorhandenen Modul sein, da ja das HTTPMOD zyklisch den nach dem Klick aktuellen Stand zurückliest...

Evtl. kann man auch beim Klick gleich das HTTPMOD dazu animieren sofort zurückzulesen ;)

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)