einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus

Begonnen von pernodjaegermeister, 26 März 2016, 21:07:33

Vorheriges Thema - Nächstes Thema

pernodjaegermeister

Hallo,

ich habe ein DummyDevice, welches mehrere Readings als eine Art ToDo-List hat.
Also Device Aufgaben, Readings waesche, buegeln, saugen etc.
Diese Readings haben entweder den Status on oder off.
Jetzt möchte ich gern ein Dummy mit on, wenn mindestens eins der Readings auf on steht, ansonsten off.
Hab es mit ReadingsGroup probiert, bekomme es aber nicht hin.

Vielleicht kann mir hier jemand helfen, Google konnte es leider nicht.

Gruß
Sascha

MadMax-FHEM

Hallo,

vielleicht nicht die geschickteste Variante aber vielleicht hilft folgendes (wenn ich richtig verstanden habe was du meinst):

notify der auf dein Dummy "reagiert" und dann ein 'sub' in myUtils aufruft wo du die Readings aller Einträge des "Aufgaben-Dummy" prüfst und dann nach deinen Wünschen/Vorstellungen entweder ein Reading eines anderen Dummy (so hab ich das verstanden?) setzt 'setreading' oder einfach gleich den Status des Aufgaben-Dummy nimmst 'setstate'...

Oder im gleichen Dummy (Aufgaben-Dummy) ein "Sammel-Reading" setzt (wieder 'setreading').

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)

pernodjaegermeister

#2
Zitat von: MadMax-FHEM am 26 März 2016, 21:45:27
Hallo,

vielleicht nicht die geschickteste Variante aber vielleicht hilft folgendes (wenn ich richtig verstanden habe was du meinst):

notify der auf dein Dummy "reagiert" und dann ein 'sub' in myUtils aufruft wo du die Readings aller Einträge des "Aufgaben-Dummy" prüfst und dann nach deinen Wünschen/Vorstellungen entweder ein Reading eines anderen Dummy (so hab ich das verstanden?) setzt 'setreading' oder einfach gleich den Status des Aufgaben-Dummy nimmst 'setstate'...

Oder im gleichen Dummy (Aufgaben-Dummy) ein "Sammel-Reading" setzt (wieder 'setreading').

Gruß, Joachim

Erstmal Danke ...
Aber ich wollte etwas flexibler bleiben, wenn ich die Readings ändern/erweitern möchte.
Ich möchte nicht jedesmal den Code anpassen müssen, wenn ich ein Reading hinzufüge.
Habe es per readinggroup und notify hinbekommen, dass es bei irgendein on das Dummy auf on setzt.
Aufgaben:.* {if ($EVENT !~ m/off/) etc. ....
Allerdings noch nicht, dass es auf off setzt, wenn alle off sind.

marvin78


pernodjaegermeister

Zitat von: marvin78 am 27 März 2016, 07:47:53
Structure
Meines Wissens nur für mehrere Device?!
Wenn du ein Codebeispiel für meinen Fall hast, gerne.

marvin78

Sorry. Habe überlesen, dass es sich um einen dummy handelt. Hier würde ich einfach ein userReading machen, welches auf alle Readings reagiert mit etwas Perl Code.

willyk

Zitat von: pernodjaegermeister am 26 März 2016, 21:51:47
Aufgaben:.* {if ($EVENT !~ m/off/) etc. ....
Allerdings noch nicht, dass es auf off setzt, wenn alle off sind.
Codebeispiel habe ich nicht, aber vielleicht eine Idee ....

Kannst Du es nicht über einen Zähler lösen? Einen Dummy 'Anzahl_On' definieren, immer wenn es eine Änderung auf "on" gibt +1, bei Änderung auf "off" -1. Wenn 'Anzahl_On' = 0, dann sind alle aus ...

Gruss
willyk
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner

pernodjaegermeister

Zitat von: willyk am 29 März 2016, 08:11:27
Codebeispiel habe ich nicht, aber vielleicht eine Idee ....

Kannst Du es nicht über einen Zähler lösen? Einen Dummy 'Anzahl_On' definieren, immer wenn es eine Änderung auf "on" gibt +1, bei Änderung auf "off" -1. Wenn 'Anzahl_On' = 0, dann sind alle aus ...

Gruss
willyk

Danke, willyk ... hab's jetzt so gemacht
define AufgabenNotify notify Aufgaben:.* {
  my $anzahl = Value("Aufgaben");
  if ($EVENT !~ m/off/) {$anzahl = $anzahl + 1;}
  else {$anzahl = $anzahl - 1;}
  fhem("set Aufgaben $anzahl");
}