Hallo,
entschuldigt meine wahrscheinlich für euch dumme Frage ...
Ich bin absoluter Neuling in Sachen Raspberry und FHEM .
Ich möchte einen Funkschalter benutzen um einen Befehl zu starten.
Habe ein CUL-Modul, welches in FHEM eingebunden ist und der Taster wird auch erkannt. (Eventlog)
nun möchte ich folgendes ausführen nachdem der Taster gedrückt wurde :
/opt/BroadLink/send-bl.sh /opt/BroadLink/LampeAn.txt
Wie geht das am besten ?
Vielen Dank für eure Starthilfe :-)
Hi und willkommen im Forum.
Gibt viele Optionen, die mMn. einfachste findest du zum Anpassen in https://fhem.de/commandref_modular_DE.html#notify (Beispiel 3, 5 und 6).
Bitte Grundlagendoku lesen, ist eine "typische Anfängerfrage" in etwas anderem Gewandt, (=> daher sowas im Anfängerbereich posten, da sind die Antworten ggf. etwas "geduldiger"!)...
Gruß, Beta-User
Den Eventmonitor kennst du dann offenbar ja auch schon...
...dort kann man sich Notify auch erzeugen lassen: https://wiki.fhem.de/wiki/Event_monitor
Ausführen von Systembefehlen: "einfach" in Anführungszeichen setzen, also ("pseudo-code"):
define nTest notify Taster:Event "Shell-Aufruf"
Evtl. auch das hilfreich:
https://forum.fhem.de/index.php?topic=55009.0
https://forum.fhem.de/index.php?topic=12611.0
Voraussetzung ist allerdings, dass Zugriffs- und Ausführungsrechte stimmen, der User fhem also das "Script" auch ausführen darf...
Und besser: alle Pfade angeben...
Gruß, Joachim
...einen habe ich noch :P :
https://fhem.de/commandref_modular_DE.html#Broadlink
(Weiß aber nicht, ob das ggf. exclusiven Zugriff auf den Dienst (oä) braucht).
Zitat von: Beta-User am 03 Januar 2020, 20:47:14
...einen habe ich noch :P :
https://fhem.de/commandref_modular_DE.html#Broadlink
(Weiß aber nicht, ob das ggf. exclusiven Zugriff auf den Dienst (oä) braucht).
Stimmt, das mit Broadlink hab ich glatt überlesen... ;)
Hatte das Modul schon mal im Einsatz.
Hat eigentlich problemlos funktioniert...
War mal gedacht meine Harmony abzulösen...
...falls sie weiter zickt.
Hat sich aber wieder "gefangen", daher hab ich das wieder ruasgenommen...
Gruß, Joachim
Vielen Dank für eure schnellen Antworten :-)
Ich versuche es mal zu verstehen .
Also ich bin glaub ich zu blöd zu verstehen wie das funktioniert :-(
Ich habe es geschafft meinen Broadlink in FHEM eingebunden und kann über das Webinterface (obere Kommandozeile) meine Lampe einschalten.
Nur wie automatisiere ich das nun mit meinem Schalter ?
kann man das über das Webinterface einstellen oder muss man das in der fhem.cfg machen ?
Die erste Hürde ist genommen :) :) :)
Ich kann nun mit meinen Funktaster meine beiden Lampen über den Broadlink steuern.
Aber jetzt wird etwas komplizierter ...
Die Lampe hat eine Fernbedienung und kann Aus , dunkel und Hell sein.
Ist es möglich den Zustand anhand des Tasters zu ändern ?
also von
Aus nach dunkel
dunkel nach hell
hell nach aus
???
Verwendest du nun das fhem-Broadlink-Modul?
https://fhem.de/commandref_DE.html#Broadlink
Ist zwar lange her aber im Prinzip sollte es möglich sein einfach Befehle "aufzunehmen" (also von der Fernbedieung) und die dann per set BroadlinkDevice AufgenommenesKommando "senden" können.
Dazu gibt es ja auch eine Möglichkeit Befehle "aufzunehmen"...
Welches Broadlink-Gerät hast du?
Oder nutzt du die "Script-Variante" aus dem Wiki?
https://wiki.fhem.de/wiki/Broadlink
EDIT: allerdings bin ich etwas "verwirrt" bzgl. dem Thread-Titel und dem was du im ersten Post geschrieben hast und wo es sich aktuell "hinentwickelt"... Ich dachte du hättest einen Funkschalter/Fernbedieung und du siehst Events in fhem... Wenn das der Fall ist, dann einfach ein Notify was eben auf den erkannten FB-Wasauchimmer (den du ja im Eventmonitor siehst!?) reagiert und eben dann im "Ausführungsteil" den gewünschten Befehl absetzt (den du ja auch schon hast!?)... Also irgendwie weiß ich grad nicht was du so (wie) verwendest und wo du gerade wirklich "hakst"... Und Notify-Anlegen geht ja mit dem Eventmonitor "kinderleicht"... ;)
Gruß, Joachim
ich benutze jetzt das FHEM Broadlink Modul für meinen RM3 Pro.
Das mit dem aufnehmen und senden klappt jetzt soweit ganz gut.
Nun ist mein Problem, dass ich einen Ein/Aus Funkschalter habe aber nicht nur an und aus schalten möchte.
Ich möchte eine Reihenfolge schalten.
Also wenn man zum Beispiel immer auf an drückt von
Aus nach dunkel
dunkel nach hell
hell nach aus
und bei Aus genau anders herum.
Gruß
Roy
Ah, ok, klarer ;)
Irgendwo im Forum bin ich die letzten Tage (oder auch etwas mehrere Tage ;) ) drübergestolpert.
War glaube ich DOIF oder code-Schnipsel...
EDIT: das war's https://forum.fhem.de/index.php/topic,105634.msg995666.html#msg995666 vielleicht hilft's...
Aber evtl. kannst du auch da was adaptieren: https://commandref.fhem.de/commandref_DE.html#DOIF_Anwendungsbeispiele_im_Perlmodus
Evtl. geht auch was mit dem MSwitch-Modul...
...kenne ich allerdings kaum/zu wenig, weiß nur, dass es recht "mächtig" ist...
Gruß, Joachim
Vielen vielen Dank.
Das hilft mir erstmal weiter
Leider hast du kein list von dem Ein-Aus-Funkschalter gepostet.
Es sollte auch ohne externes Gedöns gehen, hier mal ein Beispiel mit zwei userReadings:
defmod Dunstabzug SD_UT SF01_01319004_Typ2 2638
attr Dunstabzug IODev SignalDuino
attr Dunstabzug cmdIcon plus:control_arrow_up minus:control_arrow_down
attr Dunstabzug devStateIcon on:on:light_on_off off:off:light_on_off Fan.0:vent_ventilation Fan.1:vent_ventilation_level_0 Fan.2:vent_ventilation_level_1 Fan.3:vent_ventilation_level_3 Fan.4:vent_ventilation_level_3
attr Dunstabzug group Licht
attr Dunstabzug icon vent_ventilation_level_1
attr Dunstabzug model SF01_01319004_Typ2
attr Dunstabzug room Esszimmer
attr Dunstabzug stateFormat light\
Fan fanspeed
attr Dunstabzug userReadings light:light_on_off.* {ReadingsVal($name,"light","off") eq "off" ? "on":"off"},\
fanspeed:(plus|minus|interval).* {my $ret = ReadingsNum($name,"fanspeed",0);; my $val = ReadingsVal($name,"state","on");; if ($val =~ /plus/) { $ret = min($ret +1, 4) } elsif ($val =~ /minus/) { $ret = max($ret -1, 0) } else {$ret = 0};; $ret},
attr Dunstabzug webCmd plus:minus
Zitat von: Beta-User am 05 Januar 2020, 07:09:27
Leider hast du kein list von dem Ein-Aus-Funkschalter gepostet.
Es sollte auch ohne externes Gedöns gehen, hier mal ein Beispiel mit zwei userReadings:
defmod Dunstabzug SD_UT SF01_01319004_Typ2 2638
attr Dunstabzug IODev SignalDuino
attr Dunstabzug cmdIcon plus:control_arrow_up minus:control_arrow_down
attr Dunstabzug devStateIcon on:on:light_on_off off:off:light_on_off Fan.0:vent_ventilation Fan.1:vent_ventilation_level_0 Fan.2:vent_ventilation_level_1 Fan.3:vent_ventilation_level_3 Fan.4:vent_ventilation_level_3
attr Dunstabzug group Licht
attr Dunstabzug icon vent_ventilation_level_1
attr Dunstabzug model SF01_01319004_Typ2
attr Dunstabzug room Esszimmer
attr Dunstabzug stateFormat light\
Fan fanspeed
attr Dunstabzug userReadings light:light_on_off.* {ReadingsVal($name,"light","off") eq "off" ? "on":"off"},\
fanspeed:(plus|minus|interval).* {my $ret = ReadingsNum($name,"fanspeed",0);; my $val = ReadingsVal($name,"state","on");; if ($val =~ /plus/) { $ret = min($ret +1, 4) } elsif ($val =~ /minus/) { $ret = max($ret -1, 0) } else {$ret = 0};; $ret},
attr Dunstabzug webCmd plus:minus
Ist für einen Anfänger mindestens genauso kompliziert.
Das hier ist dagegen eine Definition, die ohne zusätzliche Definitionen auskommt, leider hat der Erfinder (Rudi) vergessen eine Doku dazu zu verfassen :)
{fhem "set Dunstabzug ".Each("Dunstabzug", "aus,dunkel,hell,dunkel"}
Den set-Befehl kannst du in einen notify oder DOIF als Eventhandler packen.
Für den Dunstabzug bringt das nicht ganz so viel (da sind ja weitere Abfragen drin, und der Code stammt aus Zeiten, als Rudi "Each" noch nicht so propagiert hatte ;D ).
Unten findet sich ein update auf "Each", für den Einsteiger auch mal eine einfachere Variante mit einem Dummy für Trockenübungen:
defmod test_d dummy
attr test_d readingList next:noArg
attr test_d setList next:noArg
attr test_d userReadings state {Each("test_d","Aus,dunkel,hell")}
defmod Dunstabzug SD_UT SF01_01319004_Typ2 2638
attr Dunstabzug IODev SignalDuino
attr Dunstabzug cmdIcon plus:control_arrow_up minus:control_arrow_down
attr Dunstabzug devStateIcon on:on:light_on_off off:off:light_on_off Fan.0:vent_ventilation Fan.1:vent_ventilation_level_0 Fan.2:vent_ventilation_level_1 Fan.3:vent_ventilation_level_3 Fan.4:vent_ventilation_level_3
attr Dunstabzug group Licht
attr Dunstabzug icon vent_ventilation_level_1
attr Dunstabzug model SF01_01319004_Typ2
attr Dunstabzug room Esszimmer
attr Dunstabzug stateFormat light\
Fan fanspeed
attr Dunstabzug userReadings light:light_on_off.* {Each($name,"off,on")},\
fanspeed:(plus|minus|interval).* {my $ret = ReadingsNum($name,"fanspeed",0);; my $val = ReadingsVal($name,"state","on");; if ($val =~ /plus/) { $ret = min($ret +1, 4) } elsif ($val =~ /minus/) { $ret = max($ret -1, 0) } else {$ret = 0};; $ret},
attr Dunstabzug webCmd plus:minus