Autor Thema: Wie toggle ich im notify ?  (Gelesen 632 mal)

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Wie toggle ich im notify ?
« am: 17 September 2022, 18:47:02 »
Hi,

wenn ich nur on off angebe gibts nur einen Readingname mit dem Wert (wie greift man den darauf zu, da hab ich irgendwie einen Hänger) darum hab ich das unten erstmal mit "status" umgesetzt.
useSetExtensions wird nicht angeboten, ich würd aber gerne toggeln (über einen statt zwei (für on und off) Kurzbefehl(e) am Iphone )

Ich hab die notify-Definition bis jetzt::

defmod not_BM_Garage notify MQTT2_zigbee_0x00158d000411b050:occupancy:.true|MQTT2_zigbee_0x00158d00032c6d54:occupancy:.true {\
my $hm = sprintf("%02d:%02d",$hour,$min);;\
my $stat= ReadingsVal($SELF,'status','off');;\
return if $stat eq 'off';;\
my $ft = InternalVal('MQTT2_WLED_G1_till','TIMESPEC','00:30');;\
return fhem('set tb_TelegramBot msg Bewegung im Hof;;set MQTT2_WLED_G1 effectname Lightning;;set MQTT2_WLED_G1 brightness 255;;set MQTT2_WLED_G1 on-for-timer 80') if $hm gt "$ft" && $hm lt "05:00";; # Versuch ins Beet kackende Viecher zu vertreiben\
fhem('set tb_TelegramBot msg Bewegung im Hof;;set MQTT2_WLED_G1 motion');; #Nachbar lugt über die Mauer\
}
attr not_BM_Garage disabledForIntervals 08:00-18:00
attr not_BM_Garage room Deko
attr not_BM_Garage setList status:on,off on:noArg off:noArg

setstate not_BM_Garage active
setstate not_BM_Garage 2022-09-17 17:56:53 on
setstate not_BM_Garage 2022-09-17 18:20:33 state active
setstate not_BM_Garage 2022-09-17 18:01:47 status on
setstate not_BM_Garage 2022-09-17 17:05:38 triggeredByDev MQTT2_zigbee_0x00158d000411b050
setstate not_BM_Garage 2022-09-17 17:05:38 triggeredByEvent occupancy: true

Gruß

Thomas
« Letzte Änderung: 17 September 2022, 18:50:23 von TomLee »

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #1 am: 17 September 2022, 19:02:43 »
Ah, man kann Perl in setList verwenden und damit kann ich "status" auswerten !

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #2 am: 17 September 2022, 19:18:02 »
Doch nicht so einfach.

So:

toggle:{ReadingsVal($SELF,'status','off') eq 'on' ? fhem("set $SELF status off") : fhem("set $SELF status on") }
werden mir die setter nicht mehr angeboten in d3m if.

Liegt es an der Angabe der fhem-Funktion in dem if ?
« Letzte Änderung: 17 September 2022, 19:20:06 von TomLee »

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #3 am: 17 September 2022, 19:25:54 »
Übersehen habe ich schonmal das nix zurückgegeben wird, die setter werden mir weiterhin nich angeboten.

toggle:{ReadingsVal($SELF,'status','off') eq 'on' ? fhem("set $SELF status off") : fhem("set $SELF status on");return 'done';}

Offline DetlefR

  • Full Member
  • ***
  • Beiträge: 297
Antw:Wie toggle ich im notify ?
« Antwort #4 am: 17 September 2022, 20:41:58 »
Hallo,
ich denke so direkt wird das nichts werden. Wie wäre es mit einem ReadingsProxy.
1: setlist anpassen
attr not_BM_Garage setList status:on,off"on:noarg" und "off:noarg" setzt "state"
2.Readingsproxy
defmod rp_BM_Garage readingsProxy not_BM_Garage :status
attr rp_BM_Garage setFn {($CMD eq "on")?"status on":"status off";;}
attr rp_BM_Garage setList on off

Sollte funktionieren.

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #5 am: 17 September 2022, 21:01:38 »
Ich weiß die Mühe zu schätzen, ein zusätzliches Device kommt aber nicht in Frage, probier ich erst gar nicht aus.

Es bleibt bei mir  das ? bei der fhem-Funktion die in dem if zurückgegeben wird, ob das überhaupt so klappt, hab mich zu wenig bis jetzt beschäftigt damit (und noch nix im Bauch), muss es hier vieleicht wieder diese anonyme sub sein deren Referenz man zurückgibt ?
Wie gesagt zu wenig mit beschäftigt bis jetzt und einfach mal drauf losgelegt ... und zu wenig, anscheinend, bisher begriffen"

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #6 am: 18 September 2022, 08:24:22 »
Der Grund sind die Leerzeichen, Lösung hab ich aber noch nicht.

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #7 am: 18 September 2022, 08:59:23 »
Auslagern des Code hilft auch net.
toggle:{irgendwie($SELF)}
Dann steht in dem setter toggle "{irgendwie($SELF)}" zur Auswahl. >:(

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #8 am: 18 September 2022, 16:08:16 »
Habs jetzt so umgesetzt das ich auf einen toggle-setter verzichten kann (zumindest einmal Abends und einmal Morgens), reicht mir vollkommen aus.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18513
-----------------------
Möchte man beruflich "etwas mit Menschen" machen, ohne etwas mit deren Dummheit zu tun haben zu müssen,
bleibt eigentlich nur der Beruf des Bestatters übrig.
-----------------------
Lesen gefährdet die Unwissenheit!

Online Jamo

  • Hero Member
  • *****
  • Beiträge: 1649
Antw:Wie toggle ich im notify ?
« Antwort #10 am: 18 September 2022, 16:32:20 »
Man kann alternativ auch einen cmdalias verwenden, um ein toggle zu realisieren.
Homematic (UART/HMUSB), Debmatic, HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, LaCrosse JeeLink, LoRaWan / TTN

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4449
  • ... wer sät, der erntet ...
Antw:Wie toggle ich im notify ?
« Antwort #11 am: 18 September 2022, 16:45:37 »
Beide zuletzt genannten Varianten erfordern wieder ein zusätzliches Device, wie schon der Vorschlag von DetlefR und das will ich vermeiden, steht doch oben, trotzdem Danke.

Ich kann mit der Variante die ich mir jetzt überlegt hab gut leben, denk ich (die kam mir erst vor ner Stunde), muss sich zeigen in der Praxis.

 

decade-submarginal