Aktionen (Szenarien) in FB.Switch

onkeldave
Beiträge: 71
Registriert: Mi 16. Mai 2018, 07:01
Wohnort: Bei HH
x 21

Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von onkeldave » So 20. Mai 2018, 21:42

Eine wenig bis gar nicht dokumentierte und schwer unterschätzte Funktion von FB.Switch sind die Aktionen. Diese lassen sich wie Geräte über das Menü auswählen und dann über die GUI starten, haben aber keine GUI zum anlegen.
Aktionen führen beliebige Schaltvorgänge (an oder aus) von Geräten nacheinander aus. Dabei ist es möglich, zwischen den einzelnen Schaltvorgängen Pausen einzubauen. Fertige Aktionen wiederum lassen sich durch den Steuerbefehl als URL in neue Geräte einbauen, so das Geräte möglich werden, die eine Aktion als "An" und einen andere Aktion als "aus" durchführen.
Außerdem bieten Aktionen erweiterte MiLight Funktionen an.

Mein praktisches Beispiel ist mein Kodi Mediacenter. Das Gerät Mediacenter schaltet bei "An" einfach nur die Funksteckdose an. Zum ausschalten möchte ich aber, das der RaspberryPi sauber heruntergefahren wird, bevor der Strom weg ist. Also liegt auf dem "Aus" Knopf eine Aktion, die erst per SSH Gerät den Pi herunterfährt ("poweroff") und dann nach 15 sek. den Strom abschaltet.
Um das zu realisierten braucht man drei Geräte und eine Aktion:

1. Gerät 1 ist ein normales Device und schaltet einfach die Funksteckdose.

2. Gerät 2 ist ein SSH Gerät und hat auf on den "reboot" befehl, auf off "poweroff"
Kodi ssh.JPG
3. Aktion, die beide Geräte kombiniert, so das Libreelec herrunterfährt und danach der Strom ausgeht,

Code: Alles auswählen

    </action>
    <action buttonLabelRun="Aus">
      <id>1</id>
      <name>Mediacenter ausschalten</name>
      <do type="device" id="2" action="off"/>
      <do type="wait" id="15"/>
      <do type="device" id="1" action="off"/>
    </action>
4. Gerät 3 ist dann ein URL Gerät und hat als on den Befehlslink für Steckdose an, als off die Aktion, die kontrolliert herunterfährt.
URL Gerät.JPG

Noch ein paar Beispiele für Aktionen:
Action 1 fährt einen Rolladen nur halb runter, da Intertechno Rolladenschalter beim 2. Senden des on Befehls stoppen

Code: Alles auswählen

    <action buttonLabelRun="Zu">
      <id>1</id>
      <name>Rollo halb</name>
      <do type="device" id="3" action="on"/>
      <do type="wait" id="17"/>
      <do type="device" id="3" action="on"/>
    </action>
Action 2 schaltet im Schlafzimmer alle Lampen an und im Wohnzimmer alle bis auf eine Lampe aus, nach 60 sek. auch die letzte Lampe im Wozi aus, damit man noch mit Licht ins Schlafzimmer gehen kann.

Code: Alles auswählen

    <action buttonLabelRun="Gute N8">
      <id>2</id>
      <name>Zu Bett gehen</name>
      <do type="device" id="6" action="on"/>
      <do type="device" id="8" action="on"/>
      <do type="device" id="2" action="off"/>
      <do type="device" id="13" action="off"/>
      <do type="wait" id="60"/>
      <do type="device" id="1" action="off"/>
    </action>
Action 3 schaltet ein Gerät an, wartet 10 sek. und schaltet ein anderes Gerät an.

Code: Alles auswählen

    <action buttonLabelRun="An">
      <id>3</id>
      <name>Musik an</name>
      <do type="device" id="19" action="on"/>
      <do type="wait" id="10"/>
      <do type="device" id="5" action="on"/>
    </action>
Action 4 lässt einfach eine Lampe im Sekundentakt blinken

Code: Alles auswählen

    <action buttonLabelRun="Blinken">
      <id>4</id>
      <name>Blinken</name>
      <do type="device" id="2" action="on"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="off"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="on"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="off"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="on"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="off"/>
    </action>
Action 5 schaltet ein MiLight in den Nachtmodus

Code: Alles auswählen

    <action buttonLabelRun="Nacht">
      <id>5</id>
      <name>Nachtlicht SZ</name>
      <do type="device" id="123" action="on" mode="Nacht"/>
    </action>
Wie Geräte, Timer, Gruppen, etc. benötigen Aktionen einen eigen Bereich in der config.xml die im Verzeichnis /fb-switch/data/ liegt. An welcher Stelle in der confog.xml der Block steht, ist relativ egal, er muss nur vor der letzten Zeile

Code: Alles auswählen

</config>
stehen. Die Einzelnen Aktionen werden von

Code: Alles auswählen

  <actions>
  </actions>
eingerahmt. Der ganze Block sieht dann so aus:

Code: Alles auswählen

  <actions>
    <action buttonLabelRun="Zu">
      <id>1</id>
      <name>Rollo halb</name>
      <do type="device" id="3" action="on"/>
      <do type="wait" id="17"/>
      <do type="device" id="3" action="on"/>
    </action>
    <action buttonLabelRun="Gute N8">
      <id>2</id>
      <name>Zu Bett gehen</name>
      <do type="device" id="6" action="on"/>
      <do type="device" id="8" action="on"/>
      <do type="device" id="2" action="off"/>
      <do type="device" id="13" action="off"/>
      <do type="wait" id="60"/>
      <do type="device" id="1" action="off"/>
    </action>
    <action buttonLabelRun="An">
      <id>3</id>
      <name>Musik an</name>
      <do type="device" id="19" action="on"/>
      <do type="wait" id="10"/>
      <do type="device" id="5" action="on"/>
    </action>
    <action buttonLabelRun="Blinken">
      <id>4</id>
      <name>Blinken</name>
      <do type="device" id="2" action="on"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="off"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="on"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="off"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="on"/>
      <do type="wait" id="1"/>
      <do type="device" id="2" action="off"/>
    </action>
    <action buttonLabelRun="Nacht">
      <id>5</id>
      <name>Nachtlicht SZ</name>
      <do type="device" id="123" action="on" mode="Nacht"/>
    </action>
  </actions>
In der GUI sieht es dann so aus:
aktion.JPG
Noch fragen? ;)
3 x

Benutzeravatar
mick14
Beiträge: 87
Registriert: Fr 18. Mai 2018, 04:46
x 10

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mick14 » Fr 17. Aug 2018, 06:47

Hi Dave,

das ist wirklich ne super Idee.

Ich hatte vor kurzer Zeit in einem anderen Beitrag geschrieben, dass Verstärker und Vorverstärker bei mir
getrennt und umgehrt ein/ausgeschaltet werden muss.

Im Moment ist mir unklar wo ich den code in der config einfügen muss?

Code: Alles auswählen

<action buttonLabelRun="An">
      <id>3</id>
      <name>Musik an</name>
      <do type="device" id="19" action="on"/>
      <do type="wait" id="10"/>
      <do type="device" id="5" action="on"/>
    </action>
Danke
Mick
0 x
FB.Switch
Intertechno ITGW-433 Gateway
Zahlreiche Intertechno Schalter
SonOff 4CH Wlan Schalter

Benutzeravatar
mrberni
Administrator
Beiträge: 113
Registriert: Di 15. Mai 2018, 17:25
Wohnort: City 17
x 20
Kontaktdaten:

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mrberni » Fr 17. Aug 2018, 12:14

mick14 hat geschrieben:
Fr 17. Aug 2018, 06:47
Hi Dave,

das ist wirklich ne super Idee.

Ich hatte vor kurzer Zeit in einem anderen Beitrag geschrieben, dass Verstärker und Vorverstärker bei mir
getrennt und umgehrt ein/ausgeschaltet werden muss.

Im Moment ist mir unklar wo ich den code in der config einfügen muss?

Code: Alles auswählen

<action buttonLabelRun="An">
      <id>3</id>
      <name>Musik an</name>
      <do type="device" id="19" action="on"/>
      <do type="wait" id="10"/>
      <do type="device" id="5" action="on"/>
    </action>
Danke
Mick
Eine <action> muss innerhalb des <actions>-Blocks definiert werden. Siehe Beispiel weiter oben. Einfach mal die config.xml ansehen die auf GitHub liegt.
Sollte es in deiner Config noch keinen <actions>-Block geben, kann dieser an beliebiger Stelle innerhalb des <config>-Blocks eingefügt werden.

Gruß
0 x
We Do What We Must, Because We Can.

Benutzeravatar
mick14
Beiträge: 87
Registriert: Fr 18. Mai 2018, 04:46
x 10

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mick14 » Sa 18. Aug 2018, 15:24

Hallo,

hatte endlich wieder Zeit zum basteln heute. Das hat super funktioniert. Nur noch ein kleines kosmetisches Problem.

Wie bekomme ich den OFF Button rot. Im Moment ist dieser grün, siehe Bild.

Kann ich die Aktion auch in HA-Bridge einbinden?

Code: Alles auswählen

<action buttonLabelRun="On">
      <id>48</id>
      <name>Music on</name>
      <do type="device" id="32" action="on"/>
      <do type="wait" id="3"/>
      <do type="device" id="33" action="on"/>
    </action>
    <action buttonLabelRun="Off">
      <id>49</id>
      <name>Music off</name>
      <do type="device" id="33" action="off"/>
      <do type="wait" id="3"/>
      <do type="device" id="32" action="off"/>
    </action>
Danke Mick
action.JPG
0 x
FB.Switch
Intertechno ITGW-433 Gateway
Zahlreiche Intertechno Schalter
SonOff 4CH Wlan Schalter

onkeldave
Beiträge: 71
Registriert: Mi 16. Mai 2018, 07:01
Wohnort: Bei HH
x 21

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von onkeldave » Sa 18. Aug 2018, 20:36

Nabend!
Rot gibt es nicht, da Aktionen keinen Off Button haben. Du könntest dir aber ein URL Gerät anlegen, dem du als "on" URL und "off" URL jeweils den Aktionslink angibst. Dann schaltest du quasi zwei Aktionen mit einem Gerät. Durch die Brust ins Auge, aber funktioniert. :) Siehe Punkt 4 in meinem ersten Post.

Mein Traum war es ja immer, das die Aktionen es mal zu einer eigenen GUI schaffen :D , eigentlich könnte man die mit der Gruppenfunktionen kombinieren, aber das ist wohl leider nicht ganz ohne... :(
Zuletzt geändert von onkeldave am So 19. Aug 2018, 11:56, insgesamt 1-mal geändert.
0 x

Benutzeravatar
mrberni
Administrator
Beiträge: 113
Registriert: Di 15. Mai 2018, 17:25
Wohnort: City 17
x 20
Kontaktdaten:

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mrberni » So 19. Aug 2018, 08:29

Moin,

und schalten per URL (für Alexa via HA-Bridge) geht natürlich auch. Beispiel:

Code: Alles auswählen

http://127.0.0.1/fb-switch/index.php?type=action&action=run&id=6&async=true
"async=true" sorgt dafür das der Aufruf von FB.Switch sofort positiv quittiert wird und die HA.Bridge und Alexa dadurch auch gleich ein "OK" erhält. Die Schaltbefehle laufen dann im Hintergrund weiter. Ohne diesen Parameter erhält Alexa erst ein OK wenn alle Befehle ausgeführt wurden. Das dauert je nach Komplexität einige Sekunden, Alexa hat aber ein sehr knappes Zeitfenster wo sie ein OK haben möchte, sonst kommt (irrtümlich) eine Fehlermeldung von ihr.

Gruß
0 x
We Do What We Must, Because We Can.

Benutzeravatar
mick14
Beiträge: 87
Registriert: Fr 18. Mai 2018, 04:46
x 10

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mick14 » So 19. Aug 2018, 12:36

mrberni hat geschrieben:
So 19. Aug 2018, 08:29
Moin,

und schalten per URL (für Alexa via HA-Bridge) geht natürlich auch. Beispiel:

Code: Alles auswählen

http://127.0.0.1/fb-switch/index.php?type=action&action=run&id=6&async=true
"async=true" sorgt dafür das der Aufruf von FB.Switch sofort positiv quittiert wird und die HA.Bridge und Alexa dadurch auch gleich ein "OK" erhält. Die Schaltbefehle laufen dann im Hintergrund weiter. Ohne diesen Parameter erhält Alexa erst ein OK wenn alle Befehle ausgeführt wurden. Das dauert je nach Komplexität einige Sekunden, Alexa hat aber ein sehr knappes Zeitfenster wo sie ein OK haben möchte, sonst kommt (irrtümlich) eine Fehlermeldung von ihr.

Gruß
Das funktioniert ja mittlerweile. Kann aber auch eine Aktion von HA-Bridge angestossen werden?

Alexa >> HA-Bridge >> FB.Switch (Aktionen) >> Schalter 1 on > 3 Sek. warten > Schalter 2 on

Gruß
Mick
0 x
FB.Switch
Intertechno ITGW-433 Gateway
Zahlreiche Intertechno Schalter
SonOff 4CH Wlan Schalter

onkeldave
Beiträge: 71
Registriert: Mi 16. Mai 2018, 07:01
Wohnort: Bei HH
x 21

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von onkeldave » So 19. Aug 2018, 14:47

Bei mir wohnt Siri und nicht Alexa, aber ich vermute, das Homekit ähnlich wie HA Bridge laufen wird. Du wirst also irgendwo bei HA Bridge deinen Link zum FB.Switch Gerät eingetragen haben. Da trägst du dann eben den Link zur Aktion ein.
0 x

Benutzeravatar
mick14
Beiträge: 87
Registriert: Fr 18. Mai 2018, 04:46
x 10

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mick14 » So 19. Aug 2018, 15:17

onkeldave hat geschrieben:
So 19. Aug 2018, 14:47
Bei mir wohnt Siri und nicht Alexa, aber ich vermute, das Homekit ähnlich wie HA Bridge laufen wird. Du wirst also irgendwo bei HA Bridge deinen Link zum FB.Switch Gerät eingetragen haben. Da trägst du dann eben den Link zur Aktion ein.
Ja richtig, aber die Aktion hat bei mir keinen Hyperlink

Code: Alles auswählen

<actions>
    <action buttonLabelRun="On">
      <id>48</id>
      <name>Music on</name>
      <do type="device" id="32" action="on"/>
      <do type="wait" id="3"/>
      <do type="device" id="33" action="on"/>
    </action>
    <action buttonLabelRun="Off">
      <id>49</id>
      <name>Music off</name>
      <do type="device" id="33" action="off"/>
      <do type="wait" id="3"/>
      <do type="device" id="32" action="off"/>
    </action>
  </actions>
0 x
FB.Switch
Intertechno ITGW-433 Gateway
Zahlreiche Intertechno Schalter
SonOff 4CH Wlan Schalter

Benutzeravatar
mick14
Beiträge: 87
Registriert: Fr 18. Mai 2018, 04:46
x 10

Re: Aktionen (Szenarien) in FB.Switch

Ungelesener Beitrag von mick14 » So 19. Aug 2018, 16:11

Sorry, wer lesen kann ist klar im Vorteil.

Habe diesen HTTP Link nach HA- Bridge eingbebaut mit dem Namen Amplifier.

Code: Alles auswählen

http://raspberrypi/fb/index.php?type=action&action=run&id=48&async=true
Alexa liefert ein OK, aber es passiert nichts. Amp und Equalizer bleiben aus. Über FB.Switch geht es unter Aktionen.
0 x
FB.Switch
Intertechno ITGW-433 Gateway
Zahlreiche Intertechno Schalter
SonOff 4CH Wlan Schalter

Antworten