Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. WORX Landroid S Steuerung Regen und Feiertage

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

WORX Landroid S Steuerung Regen und Feiertage

Geplant Angeheftet Gesperrt Verschoben Entwicklung
1 Beiträge 1 Kommentatoren 1.5k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • E Offline
    E Offline
    Expertman
    schrieb am zuletzt editiert von
    #1

    Re: Offizielle Worx Landroid-S Smarthome Schnittstelle

    Hallo liebe iobroker-Gemeinde,

    ich möchte Euch hier meine Lösung in iobroker/Blockly zu o.g. Thema vorstellen.
    Ausgangssituation war, dass ich mit der Firmware-Version 3.45 meines Landroid S (WR110MI) weiterhin die manuelle Programmierung über den Mähplan via App nutzen möchte.
    Nur das Verhalten an Feiertagen und die Ausfahrt aus der Mähroboter-Garage bei Regen (die Überdachung des Mähers in der Station setzt bekanntlich den Regensensor dort faktisch außer Funktion) wollte ich zusätzlich steuern.

    Hier die im Blockly-Script von mir verwendeten Adapter bzw. Instanzen:

    • Send emails (V1.0.4)

    • Deustche Feiertage (V1.0.11)

    • Worx Landroid S (V2.5.5)

    • openweathermap.org (V0.1.0) mit kostenloser API

    Mein Mähroboter soll sich unter Weiterverwendung des Mähplanes der WORX Landroid-App wie folgt verhalten:

    • grundlegend kein Ausfahren an Feiertagen

    • kein Ausfahren aus der Station bei Regen, nach dem Regen Aktivierung einer Regenverzögerung von 180 Minuten

    Als Trigger zum Start meines Skriptes habe ich parallel die Änderung des Objektes "feiertage.0.heute.b oolean" mit Namen "Feiertag heute?" oder von "openweathermap.0.forecast.current.title" namens "Actual title" verwendet.
    Dazu frage ich die aktuelle Wettersituation bei openweathermap mittels Zeitplanung in der zugehörigen Instanz mit einem CRON-Zeitplan "Alle 5 Sekunden", Anzeige "*/5 * * * * *" ab. Damit vermeide ich dann auch nahezu vollständig, dass mein Robi losläuft, obwohl es regent.

    Zum Verbleib des Mähroboters in der Station bin ich den dankenswerten Empfehlungen anderer gefolgt (z.B. [https://forum.iobroker.net/topic/9526/offizielle-worx-landroid-s-smarthome-schnittstelle/27] und setze dazu im manuellen Mähplan die prozentuale Erhöhung/Verringerung der wöchentlichen Arbeitszeit mit dem Objekt "landroid-s.2.calendar.mowTimeExtend" namens "Mowing times exceed" auf den Wert "-100 %".
    Soll der Märoboter wieder ungehindert nach dem manuellen Mähplan arbeiten, so wird der Wert auf "0 %" zurückgesetzt.

    Nach jeder Änderung des Mäherstatus wir eine eMail mit entsprechender Info versendet.

    Hier mein Blockly-Skript zum gefälligen Importieren:

    <xml xmlns="http://www.w3.org/1999/xhtml">
      <variables>
        <variable type="undefined" id="timeout_Niederschlag">timeout_Niederschlag</variable>
      </variables>
      <block type="on_ext" id="cBc$NdcdHpi.Q@JAn%}." x="-237" y="-1087">
        <mutation items="2"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="Vq{y=@#fae!,_?nA8m2b">
            <field name="oid">openweathermap.0.forecast.current.title</field>
          </shadow>
        </value>
        <value name="OID1">
          <shadow type="field_oid" id="!0e%juk95{ZAd}1;NEyZ">
            <field name="oid">feiertage.0.heute.boolean</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="-RmuH*i]zgNt_kPWih_/">
            <mutation elseif="1"></mutation>
            <value name="IF0">
              <block type="logic_compare" id="BGXc^;UP.3I]?]C4eCRX">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="z!W|)+.%5.BN)!@9vhda">
                    <field name="ATTR">val</field>
                    <field name="OID">feiertage.0.heute.boolean</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="k*|.}/F^M!eU^o-NKN|%">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="timeouts_cleartimeout" id="ye$Q9`RiIsjPMg;O]`P5">
                <field name="NAME">timeout_Niederschlag</field>
                <next>
                  <block type="control" id="}*9UNSVy-c3M?Q*bC#ws">
                    <mutation delay_input="false"></mutation>
                    <field name="OID">landroid-s.2.calendar.mowTimeExtend</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="text" id="2dj3hB)p$={:LhBVDG?y">
                        <field name="TEXT">-100</field>
                      </block>
                    </value>
                    <next>
                      <block type="email" id="U]%N)X/|gyQ7pn~Q7djr">
                        <field name="INSTANCE"></field>
                        <field name="IS_HTML">FALSE</field>
                        <field name="LOG"></field>
                        <value name="TO">
                          <shadow type="text" id="Y*Y+)Q{pY[=Vxo7;a+FJ">
                            <field name="TEXT">xy@web.de</field>
                          </shadow>
                        </value>
                        <value name="TEXT">
                          <shadow type="text" id="`@Al.-sY!)0-OXF]FQa[">
                            <field name="TEXT">Heute ist Feiertag. Rasenmäher pausiert.</field>
                          </shadow>
                        </value>
                        <value name="SUBJECT">
                          <shadow type="text" id="QsQ+!lj9mL4gJ.lS/HE^">
                            <field name="TEXT">ioBroker - FEIERTAG</field>
                          </shadow>
                        </value>
                        <value name="FROM">
                          <block type="text" id="Slc!dGbsoIh;TC{JC@oz">
                            <field name="TEXT">xy@web.de</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
            <value name="IF1">
              <block type="logic_compare" id="_hM/Y-{i/AP^eG]?7DpM">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="y^y,~/~@K1zEx]K7tQLo">
                    <field name="ATTR">val</field>
                    <field name="OID">feiertage.0.heute.boolean</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="Q3_B{)*)rZ.Uf?{j8f?}">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO1">
              <block type="controls_if" id="?7cwGUv$m/Ia](Dhec8T">
                <mutation elseif="1"></mutation>
                <value name="IF0">
                  <block type="logic_operation" id="o:$fx%Sk~Uxyp[=MN;1-">
                    <field name="OP">OR</field>
                    <value name="A">
                      <block type="logic_compare" id="Q:kRa#4(v-HO|d]DbUH(">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="$AL/Ji+?iutDx=!);528">
                            <field name="ATTR">val</field>
                            <field name="OID">openweathermap.0.forecast.current.title</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="yd_W(}W$D?A|,i*-v$Yn">
                            <field name="TEXT">Rain</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_compare" id="~?+Dk,h_Pm`u@-^.hyb-">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="(?}-=6dj^KTk#%.FuU^b">
                            <field name="ATTR">val</field>
                            <field name="OID">openweathermap.0.forecast.current.title</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="x@*9Q`xb9z*{l.]cp0T8">
                            <field name="TEXT">Snow</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="timeouts_cleartimeout" id="g1PohIClF9;5wuw4ZARE">
                    <field name="NAME">timeout_Niederschlag</field>
                    <next>
                      <block type="control" id="k0p`o[}5wt|NsH*gT5;1">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">landroid-s.2.calendar.mowTimeExtend</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="text" id="Zsh,X%tv?tO#f.b+6,hB">
                            <field name="TEXT">-100</field>
                          </block>
                        </value>
                        <next>
                          <block type="email" id="8ypST%Q!}O_A/wMk^$k(">
                            <field name="INSTANCE"></field>
                            <field name="IS_HTML">FALSE</field>
                            <field name="LOG"></field>
                            <value name="TO">
                              <shadow type="text" id="~~d=D?icG}oV)}Nx7$%3">
                                <field name="TEXT">xy@web.de</field>
                              </shadow>
                            </value>
                            <value name="TEXT">
                              <shadow type="text" id="fHMyek=SJJ+vqH?AHT=E">
                                <field name="TEXT">Niederschlag zu Hause. Rasenmäher pausiert.</field>
                              </shadow>
                            </value>
                            <value name="SUBJECT">
                              <shadow type="text" id="IyG%~YD=f_=#b!~QWK+?">
                                <field name="TEXT">ioBroker - NIEDERSCHLAG</field>
                              </shadow>
                            </value>
                            <value name="FROM">
                              <block type="text" id="Mg;9VP,.%?U%Z0qg+y2g">
                                <field name="TEXT">xy@web.de</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <value name="IF1">
                  <block type="logic_operation" id="/+[?mbe}NKe!|%3dCV%^">
                    <field name="OP">AND</field>
                    <value name="A">
                      <block type="logic_compare" id="{d*xRm9(059-jTm(]-j/">
                        <field name="OP">NEQ</field>
                        <value name="A">
                          <block type="get_value" id="~s|7yP$hVf!/Xq)j?2+I">
                            <field name="ATTR">val</field>
                            <field name="OID">openweathermap.0.forecast.current.title</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="I+=wECecK]isD5VerJQr">
                            <field name="TEXT">Rain</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_compare" id="6`F_aR%,n=RIh[dZea8s">
                        <field name="OP">NEQ</field>
                        <value name="A">
                          <block type="get_value" id="qC5fgV/N@,W[g2mSd@z4">
                            <field name="ATTR">val</field>
                            <field name="OID">openweathermap.0.forecast.current.title</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="cZXB$q3VYxXV:])}Zt%m">
                            <field name="TEXT">Snow</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO1">
                  <block type="controls_if" id="Z32{8F5g,HIyMy}O!!yq">
                    <mutation else="1"></mutation>
                    <value name="IF0">
                      <block type="logic_compare" id=")z4RlJ`zw~NhOQ8`8kC`">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="CXSUCLiv8UtGCJ;6LG*x">
                            <field name="ATTR">val</field>
                            <field name="OID">landroid-s.2.calendar.mowTimeExtend</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="7Z(_8F$-9j18F3VdLgzF">
                            <field name="TEXT">-100</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="email" id="~6H$Q`:/0R,.X%-2HY9`">
                        <field name="INSTANCE"></field>
                        <field name="IS_HTML">FALSE</field>
                        <field name="LOG"></field>
                        <value name="TO">
                          <shadow type="text" id="F-LP_E+mXOP,;ZiWD*Kv">
                            <field name="TEXT">xy@web.de</field>
                          </shadow>
                        </value>
                        <value name="TEXT">
                          <shadow type="text" id="sZ4HBxBO!d1Bu$3L+UqJ">
                            <field name="TEXT">Zu Hause Ende Niederschlag. Rasenmäher pausiert noch 3h.</field>
                          </shadow>
                        </value>
                        <value name="SUBJECT">
                          <shadow type="text" id="ERD9]q{/G${/VKS~bFl@">
                            <field name="TEXT">ioBroker - ENDE Niederschlag</field>
                          </shadow>
                        </value>
                        <value name="FROM">
                          <block type="text" id=":%_@p5h5(O__.SU?8Srh">
                            <field name="TEXT">xy@web.de</field>
                          </block>
                        </value>
                        <next>
                          <block type="timeouts_cleartimeout" id="GUyr!KCoGW#@).@2gl1`">
                            <field name="NAME">timeout_Niederschlag</field>
                            <next>
                              <block type="timeouts_settimeout" id="6iLIaT@cB;$yf/.JQ+Qs">
                                <field name="NAME">timeout_Niederschlag</field>
                                <field name="DELAY">180</field>
                                <field name="UNIT">min</field>
                                <statement name="STATEMENT">
                                  <block type="control" id="hhJ`}s7Wk4):py!+mg-4">
                                    <mutation delay_input="false"></mutation>
                                    <field name="OID">landroid-s.2.calendar.mowTimeExtend</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="text" id="iWY?H|Y{f/E`Aa]3./AI">
                                        <field name="TEXT">0</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="email" id="s]7eA(pdZ~Q%0tXq6Bjj">
                                        <field name="INSTANCE"></field>
                                        <field name="IS_HTML">FALSE</field>
                                        <field name="LOG"></field>
                                        <value name="TO">
                                          <shadow type="text" id="uP!GFhCOKC;l[VD6RJ]h">
                                            <field name="TEXT">xy@web.de</field>
                                          </shadow>
                                        </value>
                                        <value name="TEXT">
                                          <shadow type="text" id="YKVNWwL;8r:*}DylTAY~">
                                            <field name="TEXT">Rasen zu Hause wieder trocken. Rasenmäher aktiviert.</field>
                                          </shadow>
                                        </value>
                                        <value name="SUBJECT">
                                          <shadow type="text" id="j(|x)JM78-+ox^L4Orf!">
                                            <field name="TEXT">ioBroker - TROCKEN</field>
                                          </shadow>
                                        </value>
                                        <value name="FROM">
                                          <block type="text" id="}Fl;{3^GMHmo`/*Ng;W5">
                                            <field name="TEXT">xy@web.de</field>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                    <statement name="ELSE">
                      <block type="timeouts_cleartimeout" id="ogyCa$U+d@%dO{cj0pTN">
                        <field name="NAME">timeout_Niederschlag</field>
                        <next>
                          <block type="control" id="z.f+V53dMlSbB$q(?;#-">
                            <mutation delay_input="false"></mutation>
                            <field name="OID">landroid-s.2.calendar.mowTimeExtend</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="text" id="7L2|:y36szT=st)feaXv">
                                <field name="TEXT">0</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Besonders kniffelig fand ich die timeout-Funktion zur Realisierung der Regenverzögerung. Insbesondere war hier darauf zu achten, dass das Skript nicht in eine Endlosschleife verfällt. Dies konnte ich durch einen jeweils vorgelagerten "stop timeout" Befehl an verschiedenen Stellen erreichen.

    Ich freue mich auf Kommentare.

    1 Antwort Letzte Antwort
    0
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    481

    Online

    32.4k

    Benutzer

    81.4k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe