FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: pernodjaegermeister am 26 März 2016, 21:07:33

Titel: einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: pernodjaegermeister am 26 März 2016, 21:07:33
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
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag 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
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: pernodjaegermeister am 26 März 2016, 21:51:47
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.
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: marvin78 am 27 März 2016, 07:47:53
Structure
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: pernodjaegermeister am 27 März 2016, 13:08:51
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.
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: marvin78 am 28 März 2016, 21:07:30
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.
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: willyk am 29 März 2016, 08:11:27
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
Titel: Antw:einzelne Stati von Readings bzw. ReadingsGroup als Gesamtstatus
Beitrag von: pernodjaegermeister am 30 März 2016, 13:13:57
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");
}