Shelly Plus Smoke vernetzen – Geht das?

Shelly Plus Smoke vernetzen

Eine häufig gestellte Frage ist, ob sich die Shelly Plus Smoke Rauchmelder miteinander koppeln lassen, sodass bei einem Alarm alle Melder gleichzeitig auslösen. Die kurze Antwort: Nein, das geht von Haus aus nicht! Aber keine Sorge – mit ein wenig Kreativität und der richtigen SmartHome-Infrastruktur lässt sich eine ähnliche Funktionalität erreichen.

Warum geht das nicht direkt?

Der Grund liegt in der Energieeffizienz der Shelly Rauchmelder. Um eine möglichst lange Batterielaufzeit zu gewährleisten, befinden sich die Geräte im sogenannten DeepSleep-Modus. In diesem Zustand sind Bluetooth und WLAN deaktiviert, und nur die grundlegenden Rauchmelder-Funktionen bleiben aktiv. Erst wenn der Rauchmelder Rauch erkennt, „wacht“ er auf, verbindet sich mit dem WLAN und sendet den Alarm an die Shelly-App oder per MQTT ans SmartHome.

Die Lösung: Ein Umweg über eine SmartHome-Zentrale

Um dennoch eine Art Vernetzung zu erreichen, kann man eine SmartHome-Zentrale wie den ioBroker nutzen. Allerdings gibt es hier eine Einschränkung: Selbst mit dieser Lösung lassen sich die anderen Rauchmelder nicht dazu bringen, einen Alarmton auszugeben. Dennoch bietet diese Methode einige Vorteile und kommt der gewünschten Vernetzung sehr nahe – in manchen Fällen ist sie sogar besser als eine herkömmliche, nicht internetfähige Vernetzung.

Wie funktioniert das in der Praxis?

Viele Nutzer des Shelly Plus Smoke verfügen bereits über weitere SmartHome-Geräte, wie z. B. Shelly Schalter, smarte Leuchtmittel oder Sprachassistenten wie Alexa. Diese Geräte lassen sich über den ioBroker mit dem Rauchmelder verbinden und clever nutzen.


Shelly Plus Smoke | WLAN- und Bluetooth-Rauchmelder | Photoelektrischer Brandmelder mit Batterie | Sofortige App-Benachrichtigung und Hörbarer Alarm | EN 14604 | App-Steuerung20%

Ein Beispiel aus der Praxis:

Ich selbst nutze den ioBroker als zentrale Steuerungseinheit für mein SmartHome. Die Shelly Rauchmelder sind per MQTT mit dem ioBroker verbunden, und ich habe ein kleines Script erstellt, das die verschiedenen Geräte miteinander verknüpft.

Wenn ein Rauchmelder auslöst, passiert Folgendes:

  1. Alarmmeldung per MQTT: Der Rauchmelder sendet den Alarm an den ioBroker.
  2. Lichter einschalten: Alle smarten Leuchtmittel in der Wohnung werden eingeschaltet.
  3. Rollos hochfahren: Die Rollläden fahren automatisch hoch, um mehr Sicht und Licht zu schaffen.
  4. Sprachalarm: Alle Alexa-Geräte („Tante A“) in der Wohnung geben eine Durchsage aus, z. B.: „Achtung, der Rauchmelder im Wohnzimmer hat ausgelöst!“
    Die Durchsage wird mehrmals wiederholt und ist in allen Räumen deutlich hörbar.

Da in jedem Zimmer ein Alexa-Gerät steht, ist der Alarm überall wahrnehmbar – selbst im Flur oder in weniger frequentierten Bereichen.

Bonus-Features: Komfort und Sicherheit

Ein weiterer Vorteil dieser Lösung ist die Möglichkeit, den Rauchmelder per Sprachbefehl zu deaktivieren. Statt auf einen Stuhl zu steigen oder einen Besen verwenden zu müssen, reicht ein einfacher Befehl wie: „Alexa, Rauchmelder stummschalten .“ 
Das spart Zeit und Nerven – besonders bei Fehlalarmen.

Zusätzlich habe ich mein System so konfiguriert, dass bei einem Alarm Bilder von Überwachungskameras per Telegram verschickt werden. So kann ich auch aus der Ferne überprüfen, ob es sich um einen echten Notfall handelt oder ob es sich um einen Fehlalarm handelt. Je nach Situation kann ich dann entscheiden, ob ich den Alarm stummschalte, nach Hause fahre oder sogar die Feuerwehr informiere.

Die Shelly-App: Immer informiert

Natürlich informiert die Shelly-App auch direkt über einen lauten Alarmton und eine Push-Benachrichtigung, sobald ein Rauchmelder ausgelöst hat. So bleibt man immer auf dem neuesten Stand – egal, ob man zu Hause oder unterwegs ist.


Fazit:
Auch wenn die Shelly Plus Smoke Rauchmelder von Haus aus nicht direkt miteinander vernetzt werden können, lässt sich mit einer
SmartHome-Zentrale wie dem ioBroker eine effektive und komfortable Lösung schaffen. Durch die Kombination von smarten Geräten, Sprachassistenten und Automatisierungen entsteht ein zuverlässiges Alarmsystem, das nicht nur Sicherheit bietet, sondern auch den Alltag erleichtert.


1. Das Blockly-Skript

Kommen wir nun zum Herzstück der Automatisierung: dem Blockly-Skript, das alles steuert. Der Aufbau ist relativ einfach und intuitiv, sodass auch Einsteiger ohne Programmierkenntnisse damit zurechtkommen. Für alle, die es lieber visuell erklärt haben möchten, wird es zeitnah ein Video-Tutorial auf YouTube geben, das den gesamten Prozess Schritt für Schritt zeigt.

Der Trigger: Der Auslöser für den Alarm

Der erste Schritt besteht darin, einen Trigger-Baustein zu erstellen, der alle vorhandenen Rauchmelder auf einen Alarm überprüft. Dieser Baustein ist der Auslöser für die gesamte Automatisierung. Sobald einer der Rauchmelder Rauch erkennt und einen Alarm auslöst, wird dieser Trigger aktiviert.

shelly.0.shellyplussmoke#aaabbb222111dd0#1.Smoke0.Alarm
image

Dann habe ich mir verschiedene Funktionsbausteine (Funktionen/„etwas tun“) erstellt, die ich für die verschiedenen Aktionen verwende. Diese Bausteine sind wie kleine Module, die jeweils eine bestimmte Aufgabe erfüllen.

Zum Beispiel gibt es einen Baustein, der alle Lichter einschaltet, einen anderen, der die Rollläden hochfährt, und wieder einen, der eine Sprachdurchsage über Alexa ausgibt. Diese Bausteine lassen sich flexibel kombinieren und machen das Skript übersichtlicher.

Folgende Aktionen sind hinterlegt:

  1. Welcher Rauchmelder hat ausgelöst
  2. Licht AN Stufe 1
  3. Alexa reden lassen
  4. Rollo öffnen
  5. Telegram senden
image 13


2. Welcher Rauchmelder hat ausgelöst?

In der ersten Funktion frage ich ab, welcher Rauchmelder ausgelöst hat. Das ist wichtig, damit mir Tante A (Alexa) genau sagen kann, welcher Rauchmelder den Alarm ausgelöst hat.
Dazu verwende ich einen einfachen „falls“-Baustein und prüfe, ob der Datenpunkt „Alarm“ oder „Smoke detected“ auf „true/wahr“ steht.

Wie funktioniert das genau?

  1. Ich gehe alle Rauchmelder der Reihe nach durch, indem ich den „sonst falls“-Baustein über das dunkelblaue Zahnrad aktiviere und hinzufüge.
  2. Falls das Ergebnis „wahr/true“ ist, trage ich den Namen des Rauchmelders bzw. den Ort, an dem er sich befindet, in eine selbst erstellte Variable ein. Diese Variable habe ich „Rauchmelder Ort“ genannt.
image 14

Zusätzlich habe ich eine weitere Variable erstellt, die ich „Text_Alexa/Telegram“ genannt habe. Diese Variable enthält den Text, der später von Alexa vorgelesen oder per Telegram verschickt wird.

image 1

3. Licht AN – Stufe 1

Die nächste Funktion schaltet das Licht ein. Ich habe sie „Stufe 1“ genannt, da ursprünglich geplant war/ist, das Licht in zwei Stufen einzuschalten.

Was bedeutet das?

  • Stufe 1: Zuerst soll die indirekte Beleuchtung eingeschaltet werden.
  • Stufe 2: Einige Sekunden später soll dann die normale Beleuchtung folgen.
    Dieses Konzept habe ich bisher noch nicht vollständig umgesetzt, aber es steht auf meiner To-Do-Liste.

Was schaltet die Funktion genau?

In dieser Funktion werden verschiedene Geräte angesteuert:

  • Shelly 1 & 2 Schalter
  • HUE-Leuchtmittel
  • Zigbee-Leuchtmittel

Die Funktion selbst ist nicht besonders kompliziert. Sie sieht in etwa so aus…

image 2

Damit nicht alle Lichter gleichzeitig angehen und es möglicherweise zu Problemen bei der Befehlsübermittlung kommt, habe ich die Lichter zeitlich leicht verzögert geschaltet. Das sorgt für einen reibungslosen Ablauf und verhindert Überlastungen im Netzwerk.


4. Alexa reden lassen

Als Nächstes kommt Tante A (Alexa) ins Spiel. Die Lautsprecher geben über die Gruppenfunktion bekannt, welcher Rauchmelder ausgelöst hat.

Wie funktioniert das?

  1. Lautstärke anpassen: Zuerst wird die Lautstärke aller Lautsprecher auf 50 gesetzt.
  2. Durchsage starten: Dann wird die Durchsage ausgelöst, die den betroffenen Rauchmelder benennt.

Wichtiger Hinweis: Gruppenfunktion nutzen

Um die Gruppenfunktion zu verwenden, muss in der Alexa-App eine Gruppe angelegt werden. Diese Gruppe wird dann im Alexa-Adapter angezeigt, und du kannst den Datenpunkt „speak“ verwenden.
Bei mir heißt die Gruppe einfach „Wohnung“.

image 15
alexa2.0.Echo-Devices.edfr33ae314555666b277336fc0222.Commands.speak
image 3

5. Rollos öffnen

Zum Schluss werden alle Rollos in der Wohnung geöffnet. Im Ernstfall ist das – genau wie das Einschalten der Lichter – sehr hilfreich und kann wertvolle Zeit sparen.

Wie funktioniert das?

Bei mir wird das über einen Datenpunkt gesteuert. Hinter diesem Datenpunkt verbergen sich verschiedene Shelly- und Sonoff-Geräte, die ich für die Rollos verwende.

Die Umsetzung dieser Funktion ist unkompliziert und sollte keine große Herausforderung darstellen!

image 4


X-Sense Smarter Rauchmelder WLAN mit Sprachausgabe und 17 Standorten, Feuermelder, Rauchmelder vernetzt, 33 mm, Brandmelder mit SBS50 Basisstation, XS0B-MR61, 6 Stück17%

6. Telegram senden

Zum guten Schluss wird eine Telegram-Benachrichtigung verschickt.

Wie funktioniert das?

Im Grunde ist es ein einfacher Telegram-Baustein. Die einzige kleine Besonderheit: Hier verwende ich die Variable, die ich weiter oben erstellt und mit dem entsprechenden Text „beschrieben“ habe.

image 5

7. Trigger-Baustein

Der fertige Trigger-Baustein sieht dann wie folgt aus… Neben den ganzen Funktionsaufrufen beinhaltet er noch einige Timer, die die Funktionen leicht verzögern.

Warum die Timer?

Die Timer sorgen dafür, dass nicht alles zeitgleich passiert. Das verhindert mögliche Überlastungen und stellt sicher, dass die Befehle nacheinander und reibungslos ausgeführt werden.

image 6

Wiederholung der Alexa-Ansage

Falls der Rauchmelder nicht per Sprachbefehl stummgeschaltet wurde, wird die Tante A-Ansage nach 15 Sekunden sicherheitshalber wiederholt. So bleibt der Alarm auch dann hörbar, wenn er nicht sofort bestätigt wird.

Die Variable „Text_Alexa/Telegram“

Ganz oben im Trigger-Baustein, noch vor dem „Trigger/Falls Objekte“, wird die Variable „Text_Alexa/Telegram“ mit einem Info-Text beschrieben.

Wozu dient der Info-Text?

Dieser Info-Text wird nicht versendet, sondern dient als Sicherheitsnetz. Ich hatte ihn während der Testphase eingefügt, um sicherzustellen, dass die Nachrichten nicht leer versendet werden, falls mal etwas schiefgeht.


8. Rauchmelder per Sprachbefehl stummschalten

Die Möglichkeit, die Rauchmelder per Sprachbefehl stummschalten zu können, ist schon sehr hilfreich. Im Ernstfall kann dadurch unnötige Panik vermieden werden, und man kann sich ohne Anbrüllen mit der Familie verständigen.

Wie funktioniert das?

Damit das ganze klappt, sind ein paar Schritte notwendig:

  1. Datenpunkt erstellen:
    Zuerst muss man im ioBroker einen Datenpunkt anlegen, z. B. „Rauchmelder stumm schalten“.
  2. Datenpunkt an Alexa weiterreichen:
    Dieser Datenpunkt wird dann im ioBroker als Schalter an Tante A (Alexa) weitergegeben.
    Das geschieht über den iot-Adapter.
  3. iot-Adapter konfigurieren:
    Öffne die Instanzen des iot-Adapters, klicke auf das + Zeichen, wähle den Datenpunkt „Rauchmelder stumm schalten“ aus und lege ihn als Typ „Switch“ fest.
image 7
image 17


Dann in der Alexa App
nach einem neuen Gerät suchen lassen.

In der App sollte dann
der Datenpunkt als
„Switch/Schalter“ gefunden werden.

Diesen kann man dann später,
über die Tante A schalten.

image 19

Datenpunkt auf „true/wahr“ setzen

Damit das ganze System richtig funktioniert, setze ich den Datenpunkt standardmäßig auf „true/wahr“. Das bedeutet, dass jedes Mal, wenn der ioBroker oder das Script startet, der Datenpunkt automatisch auf „true/wahr“ gesetzt wird.

image 8

Wie wird der Datenpunkt gesteuert?

Über Tante A (Alexa) kann der Datenpunkt dann auf „false/falsch“ gesetzt werden – zum Beispiel mit dem Befehl:
„Alexa, Rauchmelder ausschalten.“

Das funktioniert, weil wir den Datenpunkt zuvor als „Switch/Schalter“ an Alexa durchgereicht und ihn als Rauchmelder deklariert haben.


Trigger für den Datenpunkt

Als Nächstes überwache ich den Datenpunkt mit einem Trigger und prüfe, ob er auf „ist unwahr“ steht. Das bedeutet: Falls der Zustand des Datenpunkts „false/falsch“ ist, wird eine Aktion ausgeführt.

Was passiert dann?

  1. Rauchmelder prüfen:
    Zuerst wird überprüft, welcher Rauchmelder ausgelöst hat. Das geschieht über den Datenpunkt „Smoke detected“.
  2. Alarm stummschalten:
    Falls die Bedingung erfüllt ist und der Rauchmelder tatsächlich ausgelöst hat, wird der Datenpunkt „Mute alarm“ des entsprechenden Rauchmelders auf „true/wahr“ gesetzt. Dadurch wird der Alarm stummgeschaltet.
image 9

9. Funktioniert der Rauchmelder?

Da das ganze System nur dann zuverlässig funktioniert, wenn der Rauchmelder ordnungsgemäß mit dem ioBroker kommuniziert, habe ich eine zusätzliche Prüfung hinzugefügt. Diese Prüfung läuft jeden Tag um 14:55 Uhr und überprüft, ob sich der Rauchmelder in den letzten 24 Stunden gemeldet hat.

Warum ist das wichtig?

Der Shelly Rauchmelder „wacht“ einmal am Tag auf und sendet einige Statusinformationen per MQTT an den ioBroker oder die Cloud. Dazu gehören beispielsweise der Batteriezustand, die Spannung und andere wichtige Daten.

Wie funktioniert die Prüfung?

  1. Zeitstempel abfragen:
    Ich frage den Zeitstempel des Datenpunkts „Device online“ ab.
  2. Zeitdifferenz prüfen:
    Dann prüfe ich, ob dieser Wert weniger als 24 Stunden (in Millisekunden) zurückliegt.
    • Falls ja: Alles ist in Ordnung, der Rauchmelder funktioniert wie er soll.
    • Falls nein: Es liegt möglicherweise ein Problem vor, und ich werde benachrichtigt.
image 10

Aktionen bei Ausfall

Falls sich der Rauchmelder länger als 24 Stunden nicht gemeldet hat, werden zwei Aktionen ausgelöst:

  1. Telegram-Benachrichtigung:
    Es wird eine Nachricht verschickt, die darauf hinweist, dass der Rauchmelder überprüft werden sollte.
  2. Datenpunkt auf „false/falsch“ setzen:
    Ein selbst erstellter Datenpunkt wird auf „false/falsch“ gesetzt.

Visualisierung des Datenpunkts

Diesen Datenpunkt visualisiere ich in meiner Visualisierung. Das hilft mir, auf einen Blick zu erkennen, ob es Probleme mit dem Rauchmelder gibt.

image 20



10. Das Wichtigste zum Schluss…

Das ganze Skript bringt natürlich nichts, wenn Tante A (Alexa) mal streikt. Deshalb überprüfe ich am Ende noch, ob der Alexa-Adapter ordnungsgemäß funktioniert.

Wie funktioniert die Prüfung?

Soweit mir bekannt ist, gibt es drei relevante Datenpunkte, die den Zustand des Adapters anzeigen. Falls einer davon gestört ist, wird eine Telegram-Benachrichtigung verschickt, um mich zu informieren.

Folgende Datenpunkte sind relevant

  1. If communication with alexa works
  2. alexa2.0 alive
  3. alexa2.0 is connected
image 11
If communication with alexa works
alexa2.0.info.connection

(Expertenmodus einschalten, damit der Datenpunkt Sichtbar ist)
alexa2.0 alive 
system.adapter.alexa2.0.alive

(Expertenmodus einschalten, damit der Datenpunkt Sichtbar ist)
alexa2.0 is connected
system.adapter.alexa2.0.connected

11. Fertig

Und das war’s! Das Skript ist nun vollständig, und die Rauchmelder sind auf diese Weise „vernetzt“.

Meine persönliche Meinung

Ich finde, diese Art der Vernetzung ist in manchen Situationen sinnvoller, als wenn in der ganzen Wohnung alle Rauchmelder gleichzeitig piepen und alle in Panik geraten. Aber das ist natürlich nur meine persönliche Einschätzung!

Wichtiger Hinweis

Das ganze System bringt natürlich nichts, wenn es zu einem Kabelbrand kommt und der Strom ausfällt. Man muss also abwägen, was man wirklich braucht oder haben möchte. Die hier gezeigte Lösung ist ein Bonus, um die Rauchmelder aufzuwerten – sie ersetzt jedoch keine richtige Vernetzung!

Blockly-Skript herunterladen

Das Blockly-Skript könnt ihr hier herunterladen und an eure Bedürfnisse anpassen. Viel Spaß damit – und hoffentlich kommt es nie zum Ernstfall!

Testen des Systems

Um das ganze zu testen, habe ich Rauchmelder-Test-Spray verwendet. Ich denke, das ist die sinnvollste Methode, um die Funktionsfähigkeit zu überprüfen.

Shelly Plus Smoke | WLAN- und Bluetooth-Rauchmelder | Photoelektrischer Brandmelder mit Batterie | Sofortige App-Benachrichtigung und Hörbarer Alarm | EN 14604 | App-Steuerung20%

Blockly
<xml xmlns="https://developers.google.com/blockly/xml">
  <variables>
    <variable id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</variable>
    <variable id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</variable>
    <variable type="timeout" id="timeout">timeout</variable>
    <variable type="timeout" id="timeout2">timeout2</variable>
    <variable type="timeout" id="Ansage wiederholen">Ansage wiederholen</variable>
  </variables>
  <block type="procedures_defnoreturn" id="p!WpoXcPi.)PZnv!Mx9u" x="538" y="-613">
    <field name="NAME">Welcher Rauchmelder hat ausgelöst</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
    <statement name="STACK">
      <block type="controls_if" id="B3=B!kkqFE3br)8Ss7|r">
        <mutation elseif="1"></mutation>
        <value name="IF0">
          <block type="get_value" id="m9O^nmr]Ydv6p9(4,P9Y">
            <field name="ATTR">val</field>
            <field name="OID">shelly.0.shellyplussmoke#80646fd09cf0#1.Smoke0.Alarm</field>
          </block>
        </value>
        <statement name="DO0">
          <block type="variables_set" id="svMcP!!XCg/;WfWOH[3;">
            <field name="VAR" id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</field>
            <value name="VALUE">
              <block type="text" id=",.xnzkX.LEYoC0@L*mCT">
                <field name="TEXT">YouTube Studio</field>
              </block>
            </value>
            <next>
              <block type="variables_set" id="GfI0IzNVLx#,XCZ5bip;" collapsed="true">
                <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
                <value name="VALUE">
                  <block type="text_join" id="[J0nNdms*O(a49M0-YI=">
                    <mutation items="6"></mutation>
                    <value name="ADD0">
                      <block type="text" id="m~A}}*UEuWL^@tzB-QA,">
                        <field name="TEXT">Achtung! Achtung! Der Rauchmelder im </field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="variables_get" id="YkPR,p3wSqZq?d/4g@=N">
                        <field name="VAR" id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</field>
                      </block>
                    </value>
                    <value name="ADD2">
                      <block type="text" id="CSLq#Pt[zx=OkCPTk+{4">
                        <field name="TEXT">hat ausgelöst...</field>
                      </block>
                    </value>
                    <value name="ADD3">
                      <block type="text" id="/q/w/24=0%`lT|l%7Sun">
                        <field name="TEXT">Achtung! Achtung! Der Rauchmelder im </field>
                      </block>
                    </value>
                    <value name="ADD4">
                      <block type="variables_get" id="=S7rEciT6[3#`iTq!*,z">
                        <field name="VAR" id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</field>
                      </block>
                    </value>
                    <value name="ADD5">
                      <block type="text" id="hMy=[Y:7@0PG@J%2@EiL">
                        <field name="TEXT">hat ausgelöst.</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </statement>
        <value name="IF1">
          <block type="get_value" id="7,3s5+uto{o8N:1%,c)W">
            <field name="ATTR">val</field>
            <field name="OID">shelly.0.shellyplussmoke#a0a3b3b86628#1.Smoke0.Alarm</field>
          </block>
        </value>
        <statement name="DO1">
          <block type="variables_set" id="4OCeJ{YO(]hD[[cl@(]0">
            <field name="VAR" id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</field>
            <value name="VALUE">
              <block type="text" id="y{UZe(I**s[Yz9:9*)J2">
                <field name="TEXT">Kinderzimmer</field>
              </block>
            </value>
            <next>
              <block type="variables_set" id="NY!58$Nc(/As6Hvqv?hh" collapsed="true">
                <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
                <value name="VALUE">
                  <block type="text_join" id="Lo~#d[meKjfaB!gsrIyq">
                    <mutation items="6"></mutation>
                    <value name="ADD0">
                      <block type="text" id="*NW-$%068@p`LD#D5xex">
                        <field name="TEXT">Achtung! Achtung! Der Rauchmelder im </field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="variables_get" id="O^{_=D]lvw~1k3A[ApyN">
                        <field name="VAR" id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</field>
                      </block>
                    </value>
                    <value name="ADD2">
                      <block type="text" id="]z;BomRdfU}uIf@uD@o?">
                        <field name="TEXT">hat ausgelöst...</field>
                      </block>
                    </value>
                    <value name="ADD3">
                      <block type="text" id="0dY?.j`GyH,Qj:g)~#Mr">
                        <field name="TEXT">Achtung! Achtung! Der Rauchmelder im </field>
                      </block>
                    </value>
                    <value name="ADD4">
                      <block type="variables_get" id="~BA+WfjE52Y78(vq+l:X">
                        <field name="VAR" id="`Opu8MT8pawBTI[Qa/ob">Rauchmelder Ort</field>
                      </block>
                    </value>
                    <value name="ADD5">
                      <block type="text" id="nky6Qydco}OicY-#7@)b">
                        <field name="TEXT">hat ausgelöst.</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
  <block type="control" id="nQFpZ!+c[8w]ON$b`]I=" x="-713" y="-462">
    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
    <field name="OID">0_userdata.0.Rauchmelder_Shelly.Rauchmelder_Stumm_schalten</field>
    <field name="WITH_DELAY">FALSE</field>
    <value name="VALUE">
      <block type="logic_boolean" id="0KS]RHh|*;{OIH-kFvlZ">
        <field name="BOOL">TRUE</field>
      </block>
    </value>
    <next>
      <block type="variables_set" id="P)x01n[MwmF,?r5S+G%G">
        <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
        <value name="VALUE">
          <block type="text" id="+%pOizFA3wt4St?UU3u?">
            <field name="TEXT">Rauchmelder Test Ansage, Skript neustart.</field>
          </block>
        </value>
        <next>
          <block type="on_ext" id="*ap{Nq@]PG_~~$!)!]wY">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">true</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="uf4kSpUE{4:c!~[jp;7o">
                <field name="oid">shelly.0.shellyplussmoke#80646fd09cf0#1.Smoke0.Alarm</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="procedures_callnoreturn" id="1yLqd/UiiPQDL.~{GS*D">
                <mutation name="Welcher Rauchmelder hat ausgelöst"></mutation>
                <next>
                  <block type="procedures_callnoreturn" id="W.iO}quEl%Bxhw:Elc,X">
                    <mutation name="Licht AN"></mutation>
                    <next>
                      <block type="timeouts_settimeout" id="lT#[v;F`Y??XA~C^D04G">
                        <field name="NAME">timeout</field>
                        <field name="DELAY">2</field>
                        <field name="UNIT">sec</field>
                        <statement name="STATEMENT">
                          <block type="procedures_callnoreturn" id="R.:=g;m$a@e#.%oHfk^A">
                            <mutation name="Alexa reden lassen"></mutation>
                          </block>
                        </statement>
                        <next>
                          <block type="timeouts_settimeout" id="ngkx**.MiuQ|wcm?.pAS">
                            <field name="NAME">timeout2</field>
                            <field name="DELAY">5</field>
                            <field name="UNIT">sec</field>
                            <statement name="STATEMENT">
                              <block type="procedures_callnoreturn" id="e-,_eX{yKNt;;2Q%amD]">
                                <mutation name="Rolladen öffnen"></mutation>
                              </block>
                            </statement>
                            <next>
                              <block type="procedures_callnoreturn" id="{:$uUm7GfQwO)`@iO{.l">
                                <mutation name="Telegram senden"></mutation>
                                <next>
                                  <block type="procedures_callcustomnoreturn" id="W*jlk$B_NQ@Z5Azi~Zu.">
                                    <mutation name="Kamera Bild versicken"></mutation>
                                    <next>
                                      <block type="timeouts_settimeout" id="zID-ozhoF}E*$d#rY/%d">
                                        <field name="NAME">Ansage wiederholen</field>
                                        <field name="DELAY">15</field>
                                        <field name="UNIT">sec</field>
                                        <statement name="STATEMENT">
                                          <block type="controls_if" id="Ny0+hz%O5`zDbu2kc3Aq">
                                            <value name="IF0">
                                              <block type="get_value" id="/p8`u==$jdcc(EsYxH*$">
                                                <field name="ATTR">val</field>
                                                <field name="OID">0_userdata.0.Rauchmelder_Shelly.Rauchmelder_Stumm_schalten</field>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="procedures_callnoreturn" id="/S#sC#kqv:~!Ce^{R/;T">
                                                <mutation name="Alexa reden lassen"></mutation>
                                                <next>
                                                  <block type="procedures_callnoreturn" id="e0_7)M?JDe$_5NX|cjHB">
                                                    <mutation name="Telegram senden"></mutation>
                                                    <next>
                                                      <block type="procedures_callcustomnoreturn" id="cPZTrB-JcHsTN|xTq(@.">
                                                        <mutation name="Kamera Bild versicken"></mutation>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </statement>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
            <next>
              <block type="schedule" id="F:#my[A:nq!:fx+A.,#P">
                <field name="SCHEDULE">55 14 * * *</field>
                <statement name="STATEMENT">
                  <block type="controls_if" id="UPY2;JnAHb8j?(n2r73U">
                    <mutation else="1"></mutation>
                    <value name="IF0">
                      <block type="logic_compare" id="6}I#_%uXrs17@[3k/~;z" inline="false">
                        <field name="OP">LT</field>
                        <value name="A">
                          <block type="convert_from_date" id="5)gt!_SznfCEkgJaoo5Y">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                            <field name="OPTION">object</field>
                            <value name="VALUE">
                              <block type="get_value" id="b(ZBsn,uybod;FjoGOa*">
                                <field name="ATTR">ts</field>
                                <field name="OID">shelly.0.shellyplussmoke#80646fd09cf0#1.online</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_arithmetic" id="D8VW=ccIYi;ce)X]4m0l">
                            <field name="OP">MINUS</field>
                            <value name="A">
                              <shadow type="math_number" id="O@?Dbj3z#PK|*A/Ao]W~">
                                <field name="NUM">1</field>
                              </shadow>
                              <block type="time_get" id="`UWpj:Dp_s_t%.~3pkz`">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                <field name="OPTION">object</field>
                              </block>
                            </value>
                            <value name="B">
                              <shadow type="math_number" id="E6$=`Y73cUD%So`0TR5$">
                                <field name="NUM">86400000</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="a*J|^(@t}Ldw)^+x,2?m">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Rauchmelder_Shelly.YouTubeStudio_letzte_Meldung</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="58K;mvGrq!Mu=n#qNMjl">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="[|Aiq9BCh@i(VrgqCQy3">
                            <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
                            <value name="VALUE">
                              <block type="text" id="4{(hvXf]MqP@ON=`U*-P">
                                <field name="TEXT">Rauchmelder im YouTube Studio prüfen, Verbindung OK?</field>
                              </block>
                            </value>
                            <next>
                              <block type="procedures_callnoreturn" id="tv];7p1:lLsBK.Tx|3wx">
                                <mutation name="Telegram senden"></mutation>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                    <statement name="ELSE">
                      <block type="control" id="f%t/$[+3=;UbR|7yC$nK">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Rauchmelder_Shelly.YouTubeStudio_letzte_Meldung</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="^e$^1~,j/g}@1~{8}=l]">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                    <next>
                      <block type="controls_if" id="I-7YCd*G)xeeE63eY3??">
                        <mutation else="1"></mutation>
                        <value name="IF0">
                          <block type="logic_compare" id="5z]iXALG=}}F6b`@0Kqn" inline="false">
                            <field name="OP">LT</field>
                            <value name="A">
                              <block type="convert_from_date" id="}R#nJ$KTAVJD_nc_@j;g">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                <field name="OPTION">object</field>
                                <value name="VALUE">
                                  <block type="get_value" id="~tehhTCZ]?VE6V!sN+56">
                                    <field name="ATTR">ts</field>
                                    <field name="OID">shelly.0.shellyplussmoke#a0a3b3b86628#1.online</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_arithmetic" id="1ioR3xutqjmr_;@`RUB~">
                                <field name="OP">MINUS</field>
                                <value name="A">
                                  <shadow type="math_number" id="O@?Dbj3z#PK|*A/Ao]W~">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="time_get" id="yjYqtHrs^/M]L!6+{,S3">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                    <field name="OPTION">object</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="PCk%5tXY~W.KhrC}ZZ~(">
                                    <field name="NUM">86400000</field>
                                  </shadow>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="[$F,mKI;][w34WTS+n+^">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Rauchmelder_Shelly.Kinderzimmer_letzte_Meldung</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="wP/,wlYh|^zr:lA@jPg1">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <next>
                              <block type="variables_set" id="6c|2_8r||}u8PHWu$=o~">
                                <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
                                <value name="VALUE">
                                  <block type="text" id=";HROQhza7:ej-Qj~wzYa">
                                    <field name="TEXT">Rauchmelder im Kinderzimmer prüfen, Verbindung OK?</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="procedures_callnoreturn" id="{try0`;Jwe;x9w/Z8AXa">
                                    <mutation name="Telegram senden"></mutation>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                        <statement name="ELSE">
                          <block type="control" id="W)_!BftRe,Hl5}}ib]Wz">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Rauchmelder_Shelly.Kinderzimmer_letzte_Meldung</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="SF6GnwW[zKu:eGEJ:Si=">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </statement>
                <next>
                  <block type="on_ext" id="|7yNyo:oo,0F9w{l.JQz">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                    <field name="CONDITION">false</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="c@EXM49CsPqgqC}zisZv">
                        <field name="oid">0_userdata.0.Rauchmelder_Shelly.Rauchmelder_Stumm_schalten</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="controls_if" id="aCZBjq|Wz,Ke(v_]Fei?">
                        <mutation elseif="1"></mutation>
                        <value name="IF0">
                          <block type="get_value" id="z3Z}~A=FiG0uQqW~x[Pg">
                            <field name="ATTR">val</field>
                            <field name="OID">shelly.0.shellyplussmoke#80646fd09cf0#1.Smoke0.Alarm</field>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="6E{=C^w38:+UIfr`Q1Kj">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">shelly.0.shellyplussmoke#80646fd09cf0#1.Smoke0.MuteAlarm</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="}IIg#bZhIrP=t/2P-O/P">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                        <value name="IF1">
                          <block type="get_value" id="c$Su)w;JDsb77!iIPG?|">
                            <field name="ATTR">val</field>
                            <field name="OID">shelly.0.shellyplussmoke#a0a3b3b86628#1.Smoke0.Alarm</field>
                          </block>
                        </value>
                        <statement name="DO1">
                          <block type="control" id="63!78.Di48mU9_z|DKX1">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">shelly.0.shellyplussmoke#a0a3b3b86628#1.Smoke0.MuteAlarm</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="~6JzOpxW[c^umo{)A*3a">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                      </block>
                    </statement>
                    <next>
                      <block type="on_ext" id=",mzP.n3b_xF-k)5}2M@:">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                        <field name="CONDITION">ne</field>
                        <field name="ACK_CONDITION"></field>
                        <value name="OID0">
                          <shadow type="field_oid" id="W,N*K`Q0$HoE~/7Znn8+">
                            <field name="oid">alexa2.0.info.connection</field>
                          </shadow>
                        </value>
                        <value name="OID1">
                          <shadow type="field_oid" id="}Uc$IF]Dd%:Hk3U{#e4=">
                            <field name="oid">system.adapter.alexa2.0.alive</field>
                          </shadow>
                        </value>
                        <value name="OID2">
                          <shadow type="field_oid" id="JF5rWskqwNAG[;:z%+wA">
                            <field name="oid">system.adapter.alexa2.0.connected</field>
                          </shadow>
                        </value>
                        <statement name="STATEMENT">
                          <block type="controls_if" id="g;1Iq8MaX[n`zr?B%8o2">
                            <value name="IF0">
                              <block type="logic_multi_or" id="xCBBbViF!VvSwgc-gXUB">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                                <value name="OR0">
                                  <block type="logic_negate" id="HTsL[rCnPUW,P5KZ=5iV">
                                    <value name="BOOL">
                                      <block type="get_value" id="T~j`S|__7;T1meJCYEUK">
                                        <field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.info.connection</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="OR1">
                                  <block type="logic_negate" id=":r~TVVXk1TyVcwja8+,D">
                                    <value name="BOOL">
                                      <block type="get_value" id="!oRU~-nJg+Z8/$0j5@}*">
                                        <field name="ATTR">val</field>
                                        <field name="OID">system.adapter.alexa2.0.alive</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="OR2">
                                  <block type="logic_negate" id="-^|!*j4Q-XYY2WnyO{$|">
                                    <value name="BOOL">
                                      <block type="get_value" id="W[?d1=IYJ;m]JPMG{Lpl">
                                        <field name="ATTR">val</field>
                                        <field name="OID">system.adapter.alexa2.0.connected</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="variables_set" id="ubX[M.Z(v/^S`CcZwp]g">
                                <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
                                <value name="VALUE">
                                  <block type="text" id="t.G?r68Wze*c{7|U0=AV">
                                    <field name="TEXT">Alexa Adapter hat eine Störung</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="procedures_callnoreturn" id="4Y3Fyb^tb3iedoEQMo8L">
                                    <mutation name="Telegram senden"></mutation>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </next>
  </block>
  <block type="procedures_defnoreturn" id="E/IoB/Y6c`+`dW8`;=;G" x="538" y="-387">
    <field name="NAME">Licht AN</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
    <statement name="STACK">
      <block type="control" id="s0]Qf#DgD-^uy`aYxIkF">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">shelly.0.SHSW-1#2C0C3C#1.Relay0.Switch</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
          <block type="logic_boolean" id="21(t=P;Dzc15#PZ){1@l">
            <field name="BOOL">TRUE</field>
          </block>
        </value>
        <next>
          <block type="control" id="S1ga9W8mV@ULr^sc.l83">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
            <field name="OID">zigbee.0.00178801061f78ff.state</field>
            <field name="WITH_DELAY">TRUE</field>
            <field name="DELAY_MS">1000</field>
            <field name="UNIT">ms</field>
            <field name="CLEAR_RUNNING">FALSE</field>
            <value name="VALUE">
              <block type="logic_boolean" id="ThS+EXA~wY7UH+QQL`1%">
                <field name="BOOL">TRUE</field>
              </block>
            </value>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="eNk+UTtnA46DRUnjX3xs" x="537" y="-263">
    <field name="NAME">Alexa reden lassen</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
    <statement name="STACK">
      <block type="control" id="Q#0-Nmb`pn2aX6q6_2Du">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">alexa2.0.Echo-Devices.G2A0QU057445197P.Commands.speak-volume</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
          <block type="math_number" id="D;h,C.$G+[w_0V98anKp">
            <field name="NUM">50</field>
          </block>
        </value>
        <next>
          <block type="control" id="/OaNEwd^T9fR?n6ud*`3">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.G2A1A603038404FC.Commands.speak-volume</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="math_number" id="{;f#~AH5|!(S?7Yx;pKu">
                <field name="NUM">50</field>
              </block>
            </value>
            <next>
              <block type="control" id="lF;^tQdtSj8NIx_!0EZ-">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">alexa2.0.Echo-Devices.G0B18W04111200E3.Commands.speak-volume</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="jyn5x)!f3db#V`.4I+~n">
                    <field name="NUM">50</field>
                  </block>
                </value>
                <next>
                  <block type="control" id="iWH=PdBE10cCNY#}qSz*">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">alexa2.0.Echo-Devices.G090XG0994941UKL.Commands.speak-volume</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="P0e;`V`M1WG8)($k]Aza">
                        <field name="NUM">50</field>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="loXc2|vNBR[{LRsu.:Fj">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                        <field name="OID">alexa2.0.Echo-Devices.dc89ae314e984749a4c52b2926fc02f8.Commands.speak</field>
                        <field name="WITH_DELAY">TRUE</field>
                        <field name="DELAY_MS">1000</field>
                        <field name="UNIT">ms</field>
                        <field name="CLEAR_RUNNING">FALSE</field>
                        <value name="VALUE">
                          <block type="variables_get" id="Kn1fJ,:AG2[CN_@6m6$w">
                            <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="3Zq+WmO8#R{B~h=(gjHn" x="538" y="-12">
    <field name="NAME">Rolladen öffnen</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
    <statement name="STACK">
      <block type="control" id="tlhC!!_uKu7qj=Orr?Bg">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">0_userdata.0.Rollo.Rollo_auf</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
          <block type="logic_boolean" id="r_H)NySUWz5;Af_V6d].">
            <field name="BOOL">TRUE</field>
          </block>
        </value>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="_9#!6p3h11ma3}6oFbG%" x="537" y="88">
    <field name="NAME">Telegram senden</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
    <statement name="STACK">
      <block type="telegram" id="0~VI7`2oOKd8gG6.{0*y">
        <field name="INSTANCE"></field>
        <field name="LOG"></field>
        <field name="SILENT">FALSE</field>
        <field name="PARSEMODE">default</field>
        <field name="ESCAPING">FALSE</field>
        <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
        <value name="MESSAGE">
          <shadow type="text" id="9,m[2AQx/Uk%+a6bEO]m">
            <field name="TEXT">text</field>
          </shadow>
          <block type="variables_get" id="]h97eaNGh]m09f1z-yd+">
            <field name="VAR" id="Hp5/_S*`1rxXG-4c=`Jp">Text_Alexa/Telegram</field>
          </block>
        </value>
      </block>
    </statement>
  </block>
  <block type="procedures_defcustomnoreturn" id="w;IW2V(UdQJ),]I3n~KD" x="537" y="388">
    <mutation statements="false"></mutation>
    <field name="NAME">Kamera Bild versicken</field>
    <field name="SCRIPT">c2VuZFRvKCJvbnZpZi4wIiwgInNuYXBzaG90IiwgIjE5Ml8xNjhfMV83Nl84MCIsIChyZXN1bHQpID0+IHsNCiAgaWYgKHJlc3VsdCkgew0KICAgIHNlbmRUbygidGVsZWdyYW0uMCIsIHsNCiAgICAgIHRleHQ6IHJlc3VsdCwNCiAgICAgIHR5cGU6ICJwaG90byIsDQogICAgICBjYXB0aW9uOiAiS2FtZXJhIFRlc3QiLA0KICAgIH0pOw0KICB9DQp9KTsNCg==</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
  </block>
</xml>
Vollständige Code anzeigen
image 12

⚠️ Hinweis zu Affiliate-Links:
Alle Links zu Produkten auf dieser Website sind Affiliate-Links.
Durch das Anklicken dieser Links unterstützt du meine Arbeit und hilfst mir, diese Website zu finanzieren.
Für dich entstehen dabei keine zusätzlichen Kosten – der Preis bleibt gleich.
Ich erhalte lediglich eine kleine Provision vom Händler oder Amazon. Vielen Dank für deine Unterstützung! 🙏