Neues Modul - MAX_Temperature

Begonnen von bismosa, 08 Januar 2020, 10:57:30

Vorheriges Thema - Nächstes Thema

bismosa

Hallo!

Hier eine kurze Vorstellung vom neuen Modul MAX_Temperature (ab jetzt über FHEM update verfügbar):

Wofür ist dieses Tool:
Es bietet eine erweiterte Möglichkeit die MAX-Heizkörperthermostate oder die MAX-Wandthermostate einzustellen.

- Setzen der Temperatur für ein oder mehrere Heizkörperthermostate.
- Setzen der Temperatur und der Zeit (Urlaubsmodus).
- Setzen des Modus (Automatik/Manual).
- Gruppen können für dieses Modul festgelegt werden.
- Es können einzelne Devices hinzugefügt oder auch ausgeschlossen werden.
- Das Layout für die Auswahlfelder kann beliebig angepasst werden.

Es kann entweder ein festes Device oder alle Thermostate|Raumthermostate gesteuert werden. Je nach Definition wird entweder nur das Device oder eine Auswahlliste für das zu steuernde Gerät angezeigt.
Alle Thermostate/Wandthermostate
define MaxTemp Max_Temperature
define MaxTemp Max_Temperature T

Nur Heizkörperthermostate
define MaxTemp Max_Temperature HT

Nur Wandthermostate
define MaxTemp Max_Temperature WT

Fest eingestelltes Thermostat
define MaxTemp Max_Temperature 123456

Das Layout für die Auswahlboxen kann in der Position angepasst werden (als HTML). Details siehe Doku.

Es können eigene Gruppen über die Attribute erzeugt werden. Beispiel:
Untergeschoss:Max_Device1,Max_Device2,Max_Device3 Obergeschoss:Max_Device4,Max_Device5
So kann dann auch mal eben schnell für das ganze Haus die Heizung auf Abwesenheit etc. gestellt werden. Ohne das jedes Device einzeln ausgewählt werden muss.
Für Fans von "structure"...diese lässt sich über das Attribut "addDevices" hinzufügen.
Genauso lassen sich auch über "IgnoreDevices" einzelne Devices ausblenden.

Wird in dem Modul ein Device ausgewählt, werden einzelne Readings von dem gewählten Gerät (oder bei einer Gruppe für alle Devices) mit angezeigt...dann hat man einen Überblick, wie das entsprechende Device gerade eingestellt ist.

Um nicht die Device-Namen auswählen zu müssen, ist es möglich einen Alias zu vergeben. Somit wird aus einem "Max_HT_Wohnzimmer" ein "Wohnzimmer" und ist übersichtlicher bedienbar. Siehe Attribut "DevicesAlias".

Im Anhang ein Bild, wie es aussehen kann.

Viel Spaß damit!

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Maui

Moin, du müsstest in den Code-Blöcken noch die defines anpassen wegen Max_Temperature

Gruß

bismosa

Hallo!

Was so ein kleines "e" doch ausmachen kann  :)

Fehler behoben. Danke für das Aufpassen!

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

thburkhart

klingt super :-)

wie bindet man denn dieses neue Modul ein?

Beste Grüße

Thomas
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

bismosa

Hallo!

Wenn dein FHEM tagesaktuell ist, dann einfach als neues Gerät definieren.
Sonst musst du erst ein "update all" in FHEM ausführen.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

DerIngo

Moin,

schönes Teil. Könnte man nicht statt der IDs da gleich die Aliase der Thermostate automatisch in die Liste bringen? Es klingt ein wenig umständlich, wenn man die an mehreren Stellen wieder neu definieren muss.

Gruß, Ingo

bismosa

Hallo!
@DerIngo
Stimmt. Ich arbeite nur wenig mit den Aliasen...daher habe ich das nicht beachtet.

@all
Ich habe mal eine neue Version (BETA!) im Anhang. Aktuelle Änderungen:
- Device alias verwenden -> Es werden nun in der Liste die Aliase angezeigt. Wird über das Attribut "DevicesAlias" neue Namen vergeben, werden diese benutzt
  Ich habe hier das Handling komplett angepasst/überarbeitet. Bitte mal vollständig durchtesten!
- Reading "Selected_MaxDevice" entfällt
- Liste der Temperaturen verändert ("on" nach "off" / Temperaturen bis 30.0°C)
- Doku angepasst (Standardeinstellungen Layout)

Bitte mal testen  :)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

adn77

Ich mache das im Moment über eine Lichtszene. Allerdings unterstützt die keine DEVSPEC "FILTER!=<WindowOpenTemperature>".

Würde es mit deinem Modul funktionieren, die Temperatur aller HT/WT zu ändern, die nicht gerade ein offenes Fenster signalisiert bekommen?
(siehe auch hier: https://forum.fhem.de/index.php/topic,95107.msg903947.html#msg903947)

bismosa

Hallo!

ZitatWürde es mit deinem Modul funktionieren, die Temperatur aller HT/WT zu ändern, die nicht gerade ein offenes Fenster signalisiert bekommen?
Nein. Das geht leider nicht.
Vielleicht würde dies eher über eine Structure gehen. Ich glaube da kann man einen Filter setzen.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Wzut

Ich schaue es mir heute Abend mal genau an , habe bei mir auch noch kleine Änderungen vorbereitet

Zitat von: bismosa am 12 Januar 2020, 18:25:51
- Device alias verwenden -> Es werden nun in der Liste die Aliase angezeigt. Wird über das Attribut "DevicesAlias" neue Namen vergeben, werden diese benutzt
Ehrlich gesagt widerstrebt es mir die Faulheit der User ihren Geräten gescheite Namen zu geben auch noch zu unterstützen.
Ich würde am liebsten in 10_MAX nur noch den Namen MAX_NEW an autocreate weitergeben und so die Leute zwingen bevor sie das nächste Device von autocreate bekommen erst einmal das andere vernünftig zu taufen.

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

bismosa

Hallo!

ZitatEhrlich gesagt widerstrebt es mir die Faulheit der User ihren Geräten gescheite Namen zu geben auch noch zu unterstützen.
Nunja...ich habe die Geräte z.B. so benannt: MAX_HT_Flur, MAX_HT_Essbereich, MAX_WT_Wohnzimmer...
Das sind schon sprechende Namen, die dann auch noch den Unterschied zwischen HT und WT machen. Das hat sich bei mir schon häufiger nützlich gemacht  :)

Klar ist es dann noch schöner (bzw. der WAF-Faktor ist höher), wenn man dann auch noch einen Alias "Heizung Wohnzimmer", "Heizung Flur" etc. vergibt.
Ich nutze das aber in den seltensten Fällen...aber es ist eine FHEM-Funktion und ich kann es verstehen, das man dies nicht 2x (oder ggf. öfter) Pflegen möchte. :)

Zitathabe bei mir auch noch kleine Änderungen vorbereitet
Darf ich fragen welche? Bin doch neugierig  ;)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Wzut

ja alias ist eine FHEM Funktion und daher wie das Wetter -> ich kann darüber meckern , kann es aber nicht ändern.

erster Test  : die selbst erzeugten Gruppen via addGroups können zwar im Dropdown gewählt aber nicht gesetzt werden , Fehler
ERROR: Please define Testinsel first

was ich vorbereitet habe :
- Prüfung beim define ob es das MAX Device mit der erlaubten Adresse auch in $modules{MAX}{defptr} gibt
- Erweiterung das define auch den echten Namen statt nur der Adresse akzeptiert
- keine direkte Änderung von $hash->{NOTIFYDEV} , dafür gibt es extra eine FHEM interne Funktion :
notifyRegexpChanged($hash,"global");
notifyRegexpChanged($hash,join("|",@MaxDevices));

 

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

bismosa

Hallo!
Zitaterster Test  : die selbst erzeugten Gruppen via addGroups können zwar im Dropdown gewählt aber nicht gesetzt werden , Fehler
Mist...da muss ich nacharbeiten. Das wird allerdings etwas schwieriger...und dauert etwas. Kann nicht versprechen, das ich das heute Abend beheben kann  ::)

Prüfung beim define ob es das MAX Device mit der erlaubten Adresse auch in $modules{MAX}{defptr} gibt
Finde ich gut  :) Klappt das denn auch bei einer Structure?

Erweiterung das define auch den echten Namen statt nur der Adresse akzeptiert
Oh. Stimmt. Ich nutze das bisher nicht. Finde ich ebenfalls gut  :)

Zitatkeine direkte Änderung von $hash->{NOTIFYDEV} , dafür gibt es extra eine FHEM interne Funktion
Wieder dazu gelernt. Wusste nicht, das es dafür eine Funktion gibt. Muss ich ja glatt mal in meinen anderen Modulen schauen. Ich habe das bestimmt aus was ganz altem kopiert  ::)

Danke!

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

Hallo!

War doch nicht so schwierig...im Anhang wieder eine neue Beta  :)
- Behoben: AddGroups können wieder verwendet werden

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

dennisk

Hallo,

ich habe die aktuelle Beta (Post vom 13. Januar, 21:18) seit einiger Zeit laufen und soweit keine Probleme festgestellt. Kann diese schon veröffentlicht werden, oder gibt es noch Probleme?

Danke und Grüße

TWART016

Hallo,

bei mir werden die HT automatisch erkannt, jedoch mit Device Name und nicht dem alias.

Kann man das irgendwie steuern?


Wzut

Zitat von: dennisk am 26 März 2020, 11:54:46
Kann diese schon veröffentlicht werden, oder gibt es noch Probleme?
schau mal auf den Download Zähler , z.Z. bei 9 und du bist der Erste der überhaupt ein Feedback gibt ....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Parador

Hallo zusammen,

gibt es eine einfache Methode um mittels MAX_Temperature täglich die Temperaturen der HK auf eine Wunschtemperatur zu setzen?
Ich habe ein "at" gebaut, dass aber nicht zu funktionieren scheint.

*07:00:00 { fhem 'set HKT_EG_A,HKT_EG_B desiredTemperature 22.0 until '.$mday.'.'.$month.'.'.$year.' 16:30'}


Damit sollte täglich um 7:00 Uhr die Thermostate auf 22 Grad gesetzt werden und zwar bis zum heutigen Datum 16:30 Uhr,
aber gerade das mit dem Datum scheint nicht zu klappen...

Wenn ich mich richtig eingelesen habe, sollten die verwendeten Variablen allgemein verfügbar sein, oder? Vermutlich hab ich was falsch zusammengebaut. Hat jemand eine Lösung für mich?

Wäre es vielleicht eine Idee das "Heute" als Option mit einzubauen?
Danke!

Wzut

#18
eigentlich sollte dein at passen
Über ein Schlüsselwort Heute bzw Today kann man ich mal nachdenken. Du kannst dir aber auch sofort selbst helfen,
leg das in deiner 99_myUtils ab :
sub mytoday
{
  my (undef,undef,undef,$d,$m,$y) = localtime(gettimeofday());
  $m++; $y+=1900;
  return sprintf('%02d.%02d.%04d', $d,$m,$y);
}

Damit hast du eine eigene Funktion die heute richtig formatiert zurück gibt, Test in der FHEMWEB Eingabezeile :
{mytoday()}  liefert 28.03.2020

*07:00:00 { fhem('set HKT_EG_A,HKT_EG_B desiredTemperature 22 until '.mytoday().' 16:30')}
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Parador

Danke Wzut!
Du hast in deiner AT-Definition ein Paar () Klammern mehr als ich... zwischen fhem und ', sind die vielleicht das Problem gewesen? bzw. sind die zwingend?
VG

Wzut

#20
Gute Frage , bei mir ist es Macht der Gewohnheit. Aber es steht dir ja frei es anders zu versuchen :)

Edit in der aktuellen Beta (von heute) darfst du statt dem Datum das Schlüsselwort today schreiben.

*07:00:00 { fhem('set HKT_EG_A,HKT_EG_B desiredTemperature 22 until today 16:30')}
um die Sache an der Stelle nun wirklich rund zu machen müsste ich aber als nächstes noch die Zeitangabe relativ erlauben.
*07:00:00 { fhem('set HKT_EG_A,HKT_EG_B desiredTemperature 22 until today +2')}
würde dann um 7:00 Uhr für zwei Stunden in den Partymodus wechseln. Bedarf ?

Edit 2 : wobei , wenn man schon eh das ganze aus einem at aufruft warum dann noch today und nicht einfach nur
*07:00:00 { fhem('set HKT_EG_A,HKT_EG_B desiredTemperature 22 until +2')}
das + vor der Zahl würde die Unterscheidung etwas erleichtern das jetzt kein Datum kommt sondern eine Zeitspanne, ich überleg mal.


Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Parador

Also ... erstmal danke! Das klingt echt gut! Ich finde sowohl die Variante mit "today" als auch "+2" klasse, das "today +2" würde ich mir auch sparen...
Freue mich wenn es mit einem der nächsten Updates implementiert ist ;-))))

dennisk

Zitat von: Wzut am 26 März 2020, 16:56:47
schau mal auf den Download Zähler , z.Z. bei 9 und du bist der Erste der überhaupt ein Feedback gibt ....

Das Interesse scheint wohl leider nicht wirklich größer zu werden (minimale Steigerung um 1). Zumindest mein Feedback von damals kann ich aber nochmal bestätigen, die aktuelle Beta funktioniert soweit.

Wie sehen denn die weiteren Pläne für das Modul aus?



Wzut

Ich muss mal schauen, aktuell habe ich fast fertige neue Versionen für alle drei MAX Module in der Schublade.
Wenn die raus sind muss ich mir das MAX_Temeratur nochmal vornehmen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Wirelesskabel

Zitat von: Wzut am 20 September 2020, 15:02:04
... , aktuell habe ich fast fertige neue Versionen für alle drei MAX Module in der Schublade. ...

Ick freu mir druff.  8)
Raspberry Pi B3+, 8er-Relaiskarte, MapleCUN, Max!(HKT/WT/FK), WS980

bismosa

Huhu!

Ich war gerade ein paar Tage unterwegs. Hier habe ich mal wieder mit dem Modul Max_Temperature die Heizung auf Abwesenheit stellen wollen.
Da ich noch das Attribut "maxHour" auf 12 stehen hatte, konnte ich keine Zeit an einem anderen Tag auswählen, die vor der Stellzeit lag(Abends losgefahren und 2 Tage später Mittags wieder da).
Vielleicht sollte dies einfach entfallen und generell auf 24 stehen. Macht glaube ich mehr sinn. Oder wenn das Datum anders -> Immer 24h und beginn bei 0Uhr oder so...

Sonst nutze ich das Modul häufiger und gerne.  ;)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Wirelesskabel

#26
Ich hab dann mal ganz billig etwas für meine "Anwesenheit trotz Wochentag" zurechtgefummelt.

(([07:30-15:00|Mo Di Mi Do Fr]) and ([Name1] or [Name2] or [Name3]) eq "present")
(set Device1 desiredTemperature auto 21,0,set Device2 desiredTemperature auto 22,0,set Device3 desiredTemperature auto 22,0,set Device4 desiredTemperature auto 18,0,set Device5 desiredTemperature auto 19,0)
DOELSE
(set Device1 desiredTemperature auto,set Device2 desiredTemperature auto,set Device3 desiredTemperature auto,set Device4 desiredTemperature auto,set Device5 desiredTemperature auto)

Nein, es ist nicht schön, aber vielleicht hilft es ja einigen, die nicht "Wir-haben-Urlaub-und-sind-bis ...-weg->nicht-heizen", sondern "Wir-haben-Urlaub->Bitte-automatisch-die-Tagabsenkung-vergessen-wenn-wir-anwesend-sind" setzen wollen.
Raspberry Pi B3+, 8er-Relaiskarte, MapleCUN, Max!(HKT/WT/FK), WS980

Sailor

Moin zusammen

Koennte bitte der Author von "98_MAX_Temperatur.pm" bitte folgende Fehlermeldungen beseitigen:

*** EN FHEM/98_MAX_Temperatur.pm: Unbalanced tr (5, last line ok: 975)
*** DE FHEM/98_MAX_Temperatur.pm: Unbalanced tr (5, last line ok: 1191)


Wenn man vor dem einchecken ins fhem Verzeichnis (z.B.: "/opt/fhem/") wechselt und dort den Befehl
/opt/fhem $ perl ./contrib/commandref_join.pl
ausführt, kann man die commandref auf Fehler hin überprüfen...

Gruß
   Sailor
******************************
Man wird immer besser...

Wzut

würde ich glatt ausbessern wenn ich da eine ungerade Anzahl finden könnte, sowohl im EN teil sind es Pärchen als auch im DE
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Sailor

Hallo Wzut

Zitat von: Wzut am 03 Februar 2021, 19:23:00
würde ich glatt ausbessern wenn ich da eine ungerade Anzahl finden könnte, sowohl im EN teil sind es Pärchen als auch im DE

Ich glaube ich habe den Fehler gefunden:
Es gab eine Datei mit dem Namen
98_MAX_Temperatur.pm
und
98_MAX_Temperature.pm
und erstere habe ich gelöscht weil sie auch nicht mehr im Repository war aber immer noch in meinem FHEM Ordner.

Muss wohl eine Altlast gewesen sein...

Gruß
   Sailor
******************************
Man wird immer besser...

Wzut

ahh ja eine Insel, hast recht ich hatte den Wechsel schon wieder völlig vergessen. THX
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher