Alle Thermostate mit gemeinsamem Notify?

Begonnen von DerIngo, 12 Januar 2020, 15:45:54

Vorheriges Thema - Nächstes Thema

DerIngo

Moin,

ich hab mich jetzt endlich mal mit dem Ecotaster beschäftigt, der seitdem ich die ELV Software nicht mehr verwende, hier sinnlos rumhing.
Verwendet wird ein umgeflashter Cube alias cm.

Ich hab dann anhand von Vorschlägen hier im Forum ein Notify gebaut:


define MAX_045f62 MAX PushButton 045f62
attr MAX_045f62 IODev cm   
define MAX_045f62.event notify MAX_045f62:(onoff).* { if ("$EVTPART1" eq "0") {fhem("set MAX_096acd desiredTemperature eco");; } else { fhem("set MAX_096acd desiredTemperatur auto");;}}


Und das funktioniert auch mit dem angegebenen Gerät.

Aber muss ich jetzt wirklich jedes einzelne Thermostat im SET Befehl aufführen, oder kann man das irgendwie vereinfachen, so dass es für alle Thermostate gilt, auch wenn mal einer dazu kommt?

Otto123

#1
devspec wäre das Zauberwort. ich habe aber keine Ahnung von MAX.
Dein notify ist ja von der Sache her so:
define MAX_045f62.event notify <devspec>:(onoff).* { if ("$EVTPART1" eq "0") {fhem("set <devspec> desiredTemperature eco");; } else { fhem("set <devspec> desiredTemperatur auto");;}}
Bei devspec kannst Du jetzt verschiedene Features verwenden, schau mal in der Doku :)

Den finde ich übrigens komisch: (onoff).* meinst Du da (on|off).* ? Aber vielleicht gibt es ja einen Event der so passt. ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Hier sieht man warum eine sinnvolle Namensgebung hilfreich ist (in dem Fall: wäre)...

Wenn die Heizkörperthermostate einem einheitlichen Schema genügen würden, z.B.

HKT_WoZi
HKT_EssZi
...

Dann könntest du:

set HKT_.* desiredTemperature eco

bzw.

set HKT_.* desiredTemperatur auto

Bzgl. des Notify sehe ich es ähnlich wie Otto...
...aber das lässt sich leicht anpassen/prüfen: Eventmonitor (dort kann man sich Notify auch "generieren lassen")...

https://wiki.fhem.de/wiki/Event_monitor


Ob es bei deinen Namen auch so leicht geht: denke nicht.
Daher muss devSpec wohl was mit TYPE oder eher model, vorhandenem Reading (z.B. desiredTemperature) o.ä. sein...
Da wirst du dich wohl in devSpec einlesen müssen und schauen was passt...

Oder mal ein list vom ECO-Taster posten (dann kann man mal bzgl. Notify kucken) und von den Thermostaten, um "Ähnlichkeiten" zu sehen -> devSpec

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)

Wzut

#3
warum  MAX_045f62:(onoff).* ? ich hätte  MAX_045f62:onoff:.* geschrieben , das onoff Reading liefert nur 0 und 1 als Wert.
zum Thema Gruppe :
a. den "harten" Weg gehen via devspec (und einiges dabei lernen , vor allem sinnvolle Namen zu benutzen statt diesen blöden autocreate Namen .... )
b. du schaust dir mal das neue Modul MAX_Temperature an, bildest dort eine Gruppe und schaltest die Gruppe via deinem notify
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DerIngo

Zitat von: Wzut am 12 Januar 2020, 17:04:29
warum  MAX_045f62:(onoff).* ? ich hätte  MAX_045f62:onoff:.* geschrieben , das onoff Reading liefert nur 0 und 1 als Wert.

Wie gesagt, das Notify selber funktioniert ja. Ich hatte mir das aus einem anderen Thread geklaut und nur die Gerätenamen geändert. An sich hab ich von der ganzen Thematik nicht so wirklich den tieferen Durchblick. ;-)

Zitat von: Wzut am 12 Januar 2020, 17:04:29
b. du schaust dir mal das neue Modul MAX_Temperature an, bildest dort eine Gruppe und schaltest die Gruppe via deinem notify

Das hatte ich mir schon kurz angeschaut. Das listet ja letztlich die ganzen Thermostate auf. Aber wie bilde ich damit dann eine Gruppe?

DerIngo

Zitat von: MadMax-FHEM am 12 Januar 2020, 16:25:48
Wenn die Heizkörperthermostate einem einheitlichen Schema genügen würden, z.B.

Ich hab für alle sprechende Aliasnamen angelegt. Ich hab bisher nicht probiert, diese Aliasnamen dann auch dort weiter zu verwenden. Geht das?


Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wzut

Zitat von: DerIngo am 12 Januar 2020, 17:20:05
Das hatte ich mir schon kurz angeschaut. Das listet ja letztlich die ganzen Thermostate auf. Aber wie bilde ich damit dann eine Gruppe?
sorry mein Fehler, ich bin geistig schon wieder einen Schritt weiter als das was man heute herunterladen kann  ....

Zitat von: DerIngo am 12 Januar 2020, 17:23:06
Ich hab für alle sprechende Aliasnamen angelegt.
das ist so eine Seuche die leider hier im MAX Bereich sehr verbreitet ist, der Aufwand den Alias anzulegen oder ein simples rename zu machen ist in etwa gleich.
Die Belohnung ist aber größer : schöne Namen überall (auch in den Logs) und eben einfacher für die Gruppenbildung
HM hat den rename Befehl extra nochmal intern im Device, aber dort werden dann auch zugehörige Channels umbenannt. Da es das hier aber nicht gibt habe ich auch bisher auf den extra set Befehl verzichtet. Obwohl .... da hängen bei vielen Usern auch noch Device Logs und SVGs dran die autocreate automatisch mit anlegt ....   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Wzut

Nachtrag : oder schau dir mal structure an , mit einem einfachen
defmod Kueche structure room Thermo1 Thermo2
kannst du dann ein set Kueche desiredTemperature 16 ausführen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Otto123

#9
In deinem notify ist mindestens ein Fehler:
{fhem("set MAX_096acd desiredTemperature eco");; } else { fhem("set MAX_096acd desiredTemperatur auto")

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

DerIngo

Zitat von: Otto123 am 12 Januar 2020, 18:32:43
In deinem notify ist mindestens ein Fehler:
{fhem("set MAX_096acd desiredTemperature eco");; } else { fhem("set MAX_096acd desiredTemperatur auto")

Danke, das war mir tatsächlich vorhin auch schon aufgefallen. Daher funktionierte eco zwar, aber auto nicht. Das ist aber schon gefixt. Ich hatte nur nicht gesehen, dass ich den falschen Code hier noch mit rein kopiert hatte.

Otto123

Und mit set magic und der Kurzform von "if" lässt sich das sehr viel einfacher schreiben:  8) 8) 8)
defmod MAX_045f62.event notify MAX_045f62:onoff:.* set MAX_096acd desiredTemperature {($EVTPART1?"auto":"eco")}

Und meine Idee mit devspec ist für MAX offenbar nicht so toll, das Thermostat kann ich auf den ersten Blick nicht mit devspec ":FILTER=" filtern
Also mach ne structure ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

DerIngo

Okay, das war ja eine Menge an Vorschlägen. Danke auf jeden Fall! :-)

Ich hab das jetzt mal so aufgebaut:


define Arbeitszimmer structure room MAX_0f0c26 MAX_124b1d
define Badezimmer structure room MAX_11cdfe MAX_136e80         

define GanzesHaus structure building Arbeitszimmer Badezimmer

define MAX_045f62.event notify MAX_045f62:onoff:.* set GanzesHaus desiredTemperature {($EVTPART1?"auto":"eco")}


Allerdings meckert er jetzt im Eventlog immer "structure GanzesHaus undefined" an. Was hab ich da nicht verstanden?

Wzut

du solltest in der commandref von structure dir nochmal den Abschnit
Zitatclientstate_behavior
Der Status einer Struktur hängt von den Status der zugefügten Devices ab. Dabei wird das propagieren der Status der Devices in zwei Gruppen klassifiziert und mittels diesem Attribut definiert:
gut durchlesen.
was dein Eventmonitor da ausgibt ist nur die Info das es keinen gemeinsamen Status für  GanzesHaus bilden kann.
Hat mit der Funktion setzen einer Temperatur quer durch die Gruppen nichts zu tun und sollte auch fehlerfrei laufen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Beta-User

Du solltest auch unterschiedliche Kenner für die structures verwenden. Z.B. 2*room geht mWn. nicht stressfrei...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files