Hallo ich habe eine kurze Frage, nachdem mir Commandref nicht weiter helfen konnte.
Folgendes:
Ich habe ein Notify programmiert. Das soll über den Floorplan schaltbar gemacht werden. Aber wie mach ich das?
Folgendes habe ich bereits:
dummy_fuer_Floorplan = der dummy der auf dem Floorplan erscheint um die Funktion/das notify an oder aus zu schalten
define dummy_fuer_Floorplan dummy
attr dummy_fuer_Floorplan webCmd on:off
define Lichtaus_HM_HochtischlichtNotify notify Lichtaus:on set HM_Hochtischlicht off
attr Lichtaus_HM_HochtischlichtNotify disale
Kann mir jemand helfen und sagen, was ich hinter disable schreiben muss, damit ich das über den Floorplan dummy schaltbar machen kann?
Herzlichen Dank für jede Hilfe
KBLc
Dein notify muss schon auf den Dummy "lauschen"...
Mal den EventMonitor öffnen und auf dem Floorplan-Dummy "rumklicken" und schauen was kommt und dann den notify entsprechend "bauen".
define Lichtaus_HM_HochtischlichtNotify notify dummy_fuer_Floorplan:on set HM_Hochtischlicht off
ungetestet (evtl. auch dummy_fuer_Floorplan:.on siehe EventMonitor)
Evtl. noch:
attr dummy_fuer_Floorplan setList on off
attr Lichtaus_HM_HochtischlichtNotify disale
gibt es nicht...
...und wenn du disable setzt, dann wird es wohl nicht funktionieren...
Gruß, Joachim
Bzw. was soll "lauschen" auf 'on' und dann 'off' zu schalten?
Willst du toggeln?!
Gruß, Joachim
@Joachim, ich glaube, es soll etwas anderes erreicht werden, als mit dem Dummy direkt zu schalten, das ist nur ein Merker für "notify ist aktiv und soll schalten" bzw. "inaktiv/deaktiviert".
Dazu zwei Anmerkungen:
1. Du kannst das Aktivieren/Deaktivieren auch direkt für das notify als webCmds per Attribut vergeben, besser als disable sollte das aber m.E. active/inactive sein (siehe commandref zu notify).
2. Wenn das per Dummy gemacht werden soll, würde ich nicht das notify ein- und ausschalten (wg. des roten ?), sondern gleich im notify den Status mit abfragen, also nur schalten, wenn der Dummy on ist...
Kleine Einstiegshilfe in die Programmierung (aus der commandref zu notify):
Zitat
define n2 notify piri:on { if($hour > 18 || $hour < 5) { fhem "set light on" } }
Value(<devicename>)
gibt den Status eines Gerätes zurück (entsprechend dem Ausdruck in Klammern, den Sie beim List-Befehl sehen).
Dankeschön, das hat mir schon mal alles weitergeholfen. Ich freue mich immer, wenn ich wiederkam neues dazu lernen darf.
Was ich nun gemacht habe:
Zitat von: Beta-User am 25 Oktober 2017, 11:27:38
1. Du kannst das Aktivieren/Deaktivieren auch direkt für das notify als webCmds per Attribut vergeben, besser als disable sollte das aber m.E. active/inactive sein (siehe commandref zu notify).
Das mit active/inactive ist eine sehr gute Sache, die ich völlig übersehen habe. Vielen Dank für den Hinweis.
Jetzt läuft alles so wie ich es haben möchte.
Danke
KBLc
Schön, dass das geklappt hat, commandref studieren ist eigentlich immer eine gute Idee ;) .
Willst du kurz den fertigen code posten und dann den Thread noch auf "[gelöst]" setzen? (Anleitung: siehe link in meiner Signatur)
Ja gerne.
Hier meine Lösung:
ich hoffe ich habe alles richtig gemacht, denn 100%ig verstanden habe ich nicht alles. Aber es geht.
define LichtausNotifyNotifyON notify Lichtaus_Floorplan:on set LichtausNotify active
define LichtausNotifyNotifyOFF notify Lichtaus_Floorplan:off set LichtausNotify inactive
genau das macht was ich will.
Vielen Dank nochmal. Das ist einfach genial.
KBLc
Nochmal ein paar Anmerkungen:
-Tread: [gelöst]?
- Devices einsparen mit webCmd (https://forum.fhem.de/index.php?topic=62702.msg541355#msg541355), das notify müßte dann direkt auf dem Floorplan zur Anzeige eingebunden werden:
attr LichtausNotify devStateIcon inactive:ios-off:active active:ios-on-blue:inactive
attr LichtausNotify webCmd active:inactive
- Alternativ sollte auch ein einziges notify auf den Dummy reichen (ungetestet!):
define LichtausNotifyNotify notify Lichtaus_Floorplan:(on|off) {
fhem("set LichtausNotify " . ($EVENT eq "on" ? "active" : "inactive") );
}
Kann man natürlich auch mit IF oder einem ausgeschriebenen perl-if machen...
Warum ist es wichtig Devices einzusparen? Spare ich damit Energie oder Ressourcen vom Raspberry Pi oder der jeweiligen Plattform?
Denn dann hätte ich viel zum einsparen. Ich habe nämlich fast für jedes Gerät einen Dummy als Merker. Da ich vom SPS-Bereich komme, arbeite ich gerne mit Merkern.
Ich werde mir die Anmerkungen ansehen und ausprobieren. Vielen leiben Dank dafür.
KBLc
Devices einsparen ist nicht wirklich wichtig, aber wenn es sich einfach vermeiden läßt, kommt es mir schlicht übersichtlicher vor. Energie usw. dürfte es jedenfalls nicht merklich verbraten.
Nur wenn es dich interessiert:
Das mit den dummy-Merkern für einzelne Gerätezustände kann man umgehen, indem man entsprechende userattr setzt, die werden dann auch direkt bei den Geräten angezeigt. Das ist m.E. funktional gleich, aber man sieht es dann bei einem list zum "eigentlichen" Gerät dann auch direkt dort und muß nicht hin- und herspringen.
Ich habe nur noch wenige Dummy-Devices (Urlaub, Ferien, Gästezimmerbelegung), den Rest habe ich durch userattr ersetzt.
Viel Erfolg jedenfalls,
Beta-User
Freilich, solche Hinweise und Informationen interessieren mich immer.
Dankeschön.
KBLc