FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kblc am 25 Oktober 2017, 10:55:09

Titel: [G E L Ö S T] Funktion einschalten
Beitrag von: kblc am 25 Oktober 2017, 10:55:09
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
Titel: Antw:Funktion einschalten
Beitrag von: MadMax-FHEM am 25 Oktober 2017, 11:20:14
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
Titel: Antw:Funktion einschalten
Beitrag von: MadMax-FHEM am 25 Oktober 2017, 11:21:49
Bzw. was soll "lauschen" auf 'on' und dann 'off' zu schalten?

Willst du toggeln?!

Gruß, Joachim
Titel: Antw:Funktion einschalten
Beitrag von: Beta-User am 25 Oktober 2017, 11:27:38
@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).
Titel: Antw:Funktion einschalten
Beitrag von: kblc am 25 Oktober 2017, 12:20:12
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
Titel: Antw:Funktion einschalten
Beitrag von: Beta-User am 25 Oktober 2017, 12:34:40
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)
Titel: Antw:Funktion einschalten
Beitrag von: kblc am 26 Oktober 2017, 08:16:31
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
Titel: Antw:Funktion einschalten
Beitrag von: Beta-User am 26 Oktober 2017, 09:21:12
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...
Titel: Antw:[G E L Ö S T] Funktion einschalten
Beitrag von: kblc am 27 Oktober 2017, 08:57:46
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
Titel: Antw:[G E L Ö S T] Funktion einschalten
Beitrag von: Beta-User am 27 Oktober 2017, 09:30:36
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
Titel: Antw:[G E L Ö S T] Funktion einschalten
Beitrag von: kblc am 27 Oktober 2017, 11:56:39
Freilich, solche Hinweise und Informationen interessieren mich immer.
Dankeschön.

KBLc