Guten Morgen,
Ich möchte gerne nach einem Reboot von FHEM alle meine MAX! Heizkörpersthermostate
in den Modus "auto" bringen, um sicher zu stellen, dass das Wochenprogramm läuft.
Ich habe dazu ein Notify "notify_fhem_relaod" mit folgendem Inhalt:
Zitat#Notify bei Restart
define notify_fhem_reload notify global:INITIALIZED set telebot message Ich wurde neu geladen! ;; set kueche.eg.heizung desiredTemperature auto ;; set bad.eg.heizung desiredTemperature auto ;; set bad.og.heizung desiredTemperature auto ;; set stube.eg.links.heizung desiredTemperature auto ;; set stube.eg.rechts.heizung desiredTemperature auto
Das ist nicht nur unübersichtlich und lang, sondern auch irgendwie unschön...
Kann ich nicht alle Geräte, die ein Reading "desiredTemperature" besitzen auf einmal schalten?
Gruß
Florian
			
				Schaue dir mal structure an!
https://fhem.de/commandref_DE.html#structure
			
			
			
				Hier wäre auch ein FILTER=... im Ausführungsteil eine Lösung.
			
			
			
				Mit:
Zitat
define Thermostate structure DefaultAuto TYPE=MAX
Habe ich zumindest in allen Geräten des TXPS MAX jetzt ein 
userAttr DefaultAuto DefaultAuto_mapgesehen. 
Natürlich auch bei den Fensterkontakten.
Ist das soweit korrekt?
Den Filter verstehe ich nicht.
Ich würde nun nur Geräte schalten wollen mit "
type = HeatingThermostat".
set Thermostate [FILTER=type=HeatingThermostat] desiredTemperature auto
			
				Zu FILTER:
Aus der commandref
set room=kitchen:FILTER=STATE=on off
set room=kitchen:FILTER=STATE!=off off
list disabled=
list TYPE=FS20 STATE
list i:TYPE=FS20 STATE
Um alle Geräte mit einem bestimmten Gerätetyp zu schalten, braucht es keine structure, in dem Fall sogar keinen weiteren FILTER, es sollte direkt so gehen (vorausgesetzt, deine bisherigen Angaben zu den Geräten passen und es ist nicht wie bei HM ein mode-Befehl):
set TYPE=MAX desiredTemperature auto
			
			
			
				Zitatset TYPE=MAX desiredTemperature auto
Sieht gut aus. Lediglich die 3 Fensterkontakte meckern, aber das kann ich wohl ignorieren.
Trotzdem ist die Struktur interessant, aber die commandref eher für Programmierer-Hirne gemacht  :P
Das define, aus meinen vorherigen Post scheint nicht so einwandfrei zu sein...
Es ist wohl sinnvoller mit einem echten Device zu arbeiten:
Zitatdefine Thermostate structure DefaultAuto bad.og.heizung
und dann alles vom TYPE=MAX hinzuzufügen
Zitataddstruct Thermostate TYPE=MAX
Zumindest zeigt das "Probably associated with" der Struktur dann alle Geräte mit ihrem Status an.
Mein Befehl:
Zitatset Thermostate:FILTER=type=HeatingThermostat desiredTemperature auto
bleibt aber ergebnislos. Lediglich im Event-Monitor lese ich : 
structure Thermostate undefined
			 
			
			
				dann 
Zitat von: FLOK am 08 November 2017, 09:44:46
Sieht gut aus. Lediglich die 3 Fensterkontakte meckern, aber das kann ich wohl ignorieren.
Dann mach doch einen FILTER auf den SubTyp (so es sowas bei MAX gibt) dahinter...
Etwas in der Art:
set TYPE=MAX:FILTER=<type=HeatingThermostat> desiredTemperature autoFür den <type=HeatingThermostat> solltest du halt nachsehen, ob das wirklich paßt, zum Testen kann man auch ein einfaches "list" mit dem Ausdruck machen, nach der wir suchen...
			
				Zitatlist TYPE=MAX type
Liefert:
Zitatbad.eg.fenster           ShutterContact 
bad.eg.heizung           HeatingThermostat 
bad.og.fenster           ShutterContact 
bad.og.heizung           HeatingThermostat 
kueche.eg.heizung        HeatingThermostat 
stube.eg.links.heizung     HeatingThermostat 
stube.eg.rechts.heizung     HeatingThermostat 
tuer.stube               ShutterContact 
			 
			
			
				Ja, und was liefert:
list TYPE=MAX:FILTER=type=HeatingThermostat 
			
			
			
				Das richtige  ;D
Zitatbad.eg.heizung 
bad.og.heizung 
kueche.eg.heizung 
stube.eg.links.heizung 
stube.eg.rechts.heizung 
Die ganze Spielerei verbraucht meine credits  >:(
Daher sehe ich die Ergebnisse erst sehr spät.
Sind die eckigen Klammer von belang?
set TYPE=MAX:FILTER=<type=HeatingThermostat> desiredTemperature auto
			
				Das sollte ein Platzhalter sein ;) .
Ergebnis der Übung wäre also (vorausgesetzt, der hintere Teil paßt wirklich, bei HM sieht der nämlich anders aus):
set TYPE=MAX:FILTER=type=HeatingThermostat desiredTemperature auto
			
			
			
				BINGO !
Ich habe mal etwas unüblich die Temperatur überall auf 7 Grad gesetzt:
Zitatset TYPE=MAX:FILTER=type=HeatingThermostat desiredTemperature 7
Und nach und nach liefert
Zitatlist TYPE=MAX STATE
auch Ergebnisse:
Zitatbad.eg.fenster           closed 
bad.eg.heizung           7.0 °C 
bad.og.fenster           closed 
bad.og.heizung           7.0 °C 
kueche.eg.heizung        17.0 °C 
stube.eg.links.heizung     17.0 °C 
stube.eg.rechts.heizung     17.0 °C 
tuer.stube               closed 
Scheint also zu ziehen....
Ich Danke dir/euch für die schnelle Hilfe und Erklärung der "Grundlagen"