Alle Geräte mit einem bestimmten Reading manipulieren

Begonnen von FLOK, 08 November 2017, 08:29:04

Vorheriges Thema - Nächstes Thema

FLOK

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


P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Beta-User

Hier wäre auch ein FILTER=... im Ausführungsteil eine Lösung.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

FLOK

#3
Mit:
Zitat
define Thermostate structure DefaultAuto TYPE=MAX

Habe ich zumindest in allen Geräten des TXPS MAX jetzt ein
userAttr DefaultAuto DefaultAuto_map
gesehen.
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


Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

FLOK

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

Beta-User

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 auto
Fü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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

FLOK

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


Beta-User

Ja, und was liefert:
list TYPE=MAX:FILTER=type=HeatingThermostat
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

FLOK

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

Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

FLOK

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"