Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Vorlage] Gartenbewässerung mit 6 Ventilen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Gartenbewässerung mit 6 Ventilen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Chris_71
      Chris_71 @Kuddel last edited by

      @kuddel
      Der Gardena Sensor hat als DP Feuchtigkeit in Prozent und Temperatur

      a9673171-569a-4e94-9c50-a7d70394d436-grafik.png

      1 Reply Last reply Reply Quote 0
      • W
        WaMa73 last edited by

        Hallo liebes Forum und besonders @kuddel,

        vielen, vielen Dank für die Mühe, so ein Skript (inkl. Vis) zu erstellen, und noch zu supporten.

        Ich stehe gerade vor einem Problem. Erstens bin ich kein JAVA (Blockly) Experte, habe aber alles importiert bekommen und es läuft. Jetzt weicht mein Aufbau aber vom "Standard" ab. Ich habe einen SONOFF POW R3 für die Pumpe und einen 4CH Pro für 4 Ventile. Beide mit Tasmota (11.1.0). Der POW schaltet aber den CH4 erst ein. Daher benötige ich eine Pause, von ca. 10-15 Sekunden, nach dem Einschalten der Pumpe. Dann erst ist der CH4 hochgefahren und die PulseTime1-4 kann übertragen werden bzw. die POWER-States1-4 können geschaltet werden.
        Leider kenne ich mich noch nicht so gut mit Blockly aus um den richtigen Ort für einen Pausenblock in Deinem Hammerskript zu finden. Kann mir da irgendwer nen Tipp geben?

        Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.?
        Nochmals vielen Dank für Deine bzw. Eure Arbeit.

        K 1 Reply Last reply Reply Quote 0
        • K
          Kuddel @WaMa73 last edited by

          @wama73 da dein Problem ein absoluter Sonderfall ist, sehe ich die Lösung nicht bei mir im Skript, sondern in einem extra Skript.

          Der Ansatz wäre: Das extra Skript löst 20 Sekunden vor der Bewässerung aus und aktiviert somit deinen POW.
          Im Anschluss startet mein Skript dann ganz normal.

          Kann mir nächste Woche mal Gedanken dazu machen, wie das in Blockly aussehen würde.

          W 1 Reply Last reply Reply Quote 1
          • W
            WaMa73 @Kuddel last edited by WaMa73

            @kuddel
            Danke für die schnelle Antwort.
            Eigentlich müsste ich dann nur Dein Skript aus einem anderen aufrufen.?
            Doch dafür fehlt mir das KnowHow.

            Nachtrag: Werde einen DP anlegen, diesen durch ein neues Skript ändern bzw. den POW einschalten, 15 Sekunden Pause und dann Deinen DP "bewaesserung_aktiv" setzen. So wie ich Dein Skript verstehe, wird der Aktor_Pumpe, wenn "true", ignoriert bzw. nicht geschaltet.?

            K 1 Reply Last reply Reply Quote 0
            • K
              Kuddel @WaMa73 last edited by

              @wama73 so wie du das vorhast, würde das natürlich funktionieren.

              Du startet die Bewässung dann ja quasi manuell.

              Somit hebelst du dann aber die Schwellwerte aus und deine Bewässerung würde immer starten, auch wenn es bei dir seit 2 Wochen regnet und es nur 5 Grad sind.

              Was genau meinst du mit der Pumpe ?

              W 1 Reply Last reply Reply Quote 1
              • W
                WaMa73 @Kuddel last edited by

                @kuddel
                Ich setze in "meinem" Skript den "Aktor_Pumpe" auf TRUE, warte 15 Sekunden und setze dann den DP "bewaesserung_aktiv" auf TRUE. Dann sollte Dein Skript doch so ablaufen als hätte ich es über die VIS gestartet. Mit allem PiPaPo.?
                Dann noch in der VIS einen zusätzlichen Button "Start" der "mein Skript triggert.
                Kann es leider zur Zeit nicht umsetzen, da ich auf der Arbeit bin.

                K 1 Reply Last reply Reply Quote 0
                • K
                  Kuddel @WaMa73 last edited by

                  @wama73 die Bewässerung startet auf jeden Fall, aber ignoriert dabei halt alle Schwellwerte bzgl. Temperatur, Regen und Wind.

                  W 1 Reply Last reply Reply Quote 1
                  • W
                    WaMa73 @Kuddel last edited by

                    @kuddel
                    Aber ist es nicht egal, ob ich den Button in der VIS drücke oder den DP via Skript setze.
                    Ah, gerade kommt die Erinnerung... Wenn die Schwellwerte nicht passen, schaltest Du den Pumpen_Aktor erst gar nicht.?

                    Ok, ich hab da noch nen Sonoff mini in der Steuerung. Nutze aber nur den Switch (Taster am Pumpenhaus). Dessen "POWER" könnte ich nutzen um den 4CH zu aktivieren und dann Deinen DP "bewaesserung_aktiv" setzen.
                    Das ist echt blöd, so etwas zu bescheiben, wenn man es nicht vor sich hat. Sorry.

                    K 2 Replies Last reply Reply Quote 0
                    • K
                      Kuddel @WaMa73 last edited by

                      @wama73 wenn die Schwellwerte nicht passen, wird die Bewässerung gar nicht erst gestartet.

                      Du willst ja sicher autom. bewässern oder?

                      Was nimmst du als Start? Feste Uhrzeit oder Sonnenauf/ -untergang?

                      W 1 Reply Last reply Reply Quote 1
                      • K
                        Kuddel @WaMa73 last edited by

                        @wama73 habe da mal fix etwas zusammengebastelt:

                        Mit diesem Blockly kannst du deinen Aktor 20 Sekunden vorm Start von der Bewässerung zur festen Startzeit 1 starten.

                        45797ba3-1b6b-4ccd-a518-09e1951369d3-grafik.png

                        Export

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <variables>
                           <variable id="s_fU$1u,HsOI-:CZM9pK">cron_uhrzeit</variable>
                           <variable id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</variable>
                           <variable type="cron" id="timer">timer</variable>
                         </variables>
                         <block type="on_ext" id=":[.|JC2d6p:ox,DrPVJf" x="188" y="-262">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="=5^zR;p.Msv3b-}ibhB[">
                               <field name="oid">0_userdata.0.bewaesserung.zeitplan.feste_startzeit_1.feste_startzeit_1_uhrzeit_ende</field>
                             </shadow>
                           </value>
                           <value name="OID1">
                             <shadow type="field_oid" id="p5JyOXBV~vq-RnS1pa06">
                               <field name="oid">0_userdata.0.bewaesserung.zeitplan.feste_startzeit_1.feste_startzeit_1_aktiv</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="schedule_clear" id="Wu0mt3LvlaC66yH~3{ZM">
                               <field name="NAME">timer</field>
                               <next>
                                 <block type="variables_set" id="El|Sk%[eEtzQ.]$y2HgI">
                                   <field name="VAR" id="s_fU$1u,HsOI-:CZM9pK">cron_uhrzeit</field>
                                   <value name="VALUE">
                                     <block type="convert_from_date" id="luqS|%7X~S_PGD%2^Hh[">
                                       <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="U~6,!=(jBu:l!Z?oZiOk">
                                           <field name="ATTR">val</field>
                                           <field name="OID">0_userdata.0.bewaesserung.zeitplan.feste_startzeit_1.feste_startzeit_1_uhrzeit_start</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="J#abT3(ke,+z!~wu`@gM">
                                       <field name="VAR" id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</field>
                                       <value name="VALUE">
                                         <block type="math_arithmetic" id="}PF7:aL.h:Hl!l7}ctiA" inline="false">
                                           <field name="OP">MINUS</field>
                                           <comment pinned="false" h="80" w="160">Startzeit minus 20 Sekunden (in MS)</comment>
                                           <value name="A">
                                             <shadow type="math_number" id="!rX]1)l(Nz4=5[HK,[Am">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="variables_get" id="P4Xm{b4l6!3[DD6X#*Q{">
                                               <field name="VAR" id="s_fU$1u,HsOI-:CZM9pK">cron_uhrzeit</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="EC*CfHTL]_RgI5#3oi[/">
                                               <field name="NUM">20000</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id="mW!=x*phcC$[`ho30mj`">
                                           <field name="VAR" id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</field>
                                           <value name="VALUE">
                                             <block type="convert_from_date" id="T9r_PV/}on$!4m5fGJ5r">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                               <field name="OPTION">hh:mm:ss</field>
                                               <value name="VALUE">
                                                 <block type="variables_get" id="{SFS~*Y8}:y2|%K_yyI=">
                                                   <field name="VAR" id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="schedule_create" id="bH?srlUpeTj.+poTHwQo">
                                               <field name="NAME">timer</field>
                                               <value name="SCHEDULE">
                                                 <shadow type="field_cron" id="@ymF3;mAQzsO$PnW5BqI">
                                                   <field name="CRON">* * * * *</field>
                                                 </shadow>
                                                 <block type="cron_builder" id="+|+UAT@maLu05!K0c.+:">
                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" seconds="true" as_line="false"></mutation>
                                                   <field name="LINE">FALSE</field>
                                                   <field name="WITH_SECONDS">TRUE</field>
                                                   <value name="DOW">
                                                     <shadow type="text" id="xsg4.gCj}yx:IUVmvz_Y">
                                                       <field name="TEXT">*</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="MONTHS">
                                                     <shadow type="text" id="Gwns]4_1JnIkafG^-1:i">
                                                       <field name="TEXT">*</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="DAYS">
                                                     <shadow type="text" id="#$N-+b=v{+Hd!h*Lwc^.">
                                                       <field name="TEXT">*</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="HOURS">
                                                     <shadow type="text" id="kdrm?Kuz%MPh*O+G$xMf">
                                                       <field name="TEXT">*</field>
                                                     </shadow>
                                                     <block type="text_getSubstring" id="=*X0L%F6`t`wMGN59@{6">
                                                       <mutation at1="true" at2="true"></mutation>
                                                       <field name="WHERE1">FROM_START</field>
                                                       <field name="WHERE2">FROM_START</field>
                                                       <value name="STRING">
                                                         <block type="variables_get" id="-81LbUFU8zPJ`aKB][Y#">
                                                           <field name="VAR" id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT1">
                                                         <block type="math_number" id="IJE3vctO3q9{61hkPaWO">
                                                           <field name="NUM">1</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT2">
                                                         <block type="math_number" id="Q:8L?k9#?FR`bc78:)|M">
                                                           <field name="NUM">2</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="MINUTES">
                                                     <shadow type="text" id="s$q]`20*`*Nr5hnaSDpD">
                                                       <field name="TEXT">*</field>
                                                     </shadow>
                                                     <block type="text_getSubstring" id="?{!ypB6+Yzf~T1[0LX+b">
                                                       <mutation at1="true" at2="true"></mutation>
                                                       <field name="WHERE1">FROM_START</field>
                                                       <field name="WHERE2">FROM_START</field>
                                                       <value name="STRING">
                                                         <block type="variables_get" id="W9rPV`,%*]Xc3MH?p7}2">
                                                           <field name="VAR" id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT1">
                                                         <block type="math_number" id="D.6_dRO1g@3nt*Q7vG:y">
                                                           <field name="NUM">4</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT2">
                                                         <block type="math_number" id="Zf,Qy$NIdw}?^J={^!h~">
                                                           <field name="NUM">5</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="SECONDS">
                                                     <shadow type="text" id="t%mx9{u_4obi*c9iTz~w">
                                                       <field name="TEXT">*</field>
                                                     </shadow>
                                                     <block type="text_getSubstring" id="lW*p`W4x^GUP3@:oaueo">
                                                       <mutation at1="true" at2="true"></mutation>
                                                       <field name="WHERE1">FROM_START</field>
                                                       <field name="WHERE2">FROM_START</field>
                                                       <value name="STRING">
                                                         <block type="variables_get" id="fWTWi1:[-kE%a4Z$4RpO">
                                                           <field name="VAR" id="A-BOJoXL@]{XC${pmaag">cron_uhrzeit_neu</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT1">
                                                         <block type="math_number" id="E3Z)-b=T}_6iJu%DLh+3">
                                                           <field name="NUM">4</field>
                                                         </block>
                                                       </value>
                                                       <value name="AT2">
                                                         <block type="math_number" id="D1VMM4==uIEXanC{/[~z">
                                                           <field name="NUM">5</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <statement name="STATEMENT">
                                                 <block type="controls_if" id="+b[~?S6Dnrrb]Wdg~[3c">
                                                   <value name="IF0">
                                                     <block type="logic_operation" id="%Xb2rM]8RpBmOI0s;jd)" inline="false">
                                                       <field name="OP">AND</field>
                                                       <value name="A">
                                                         <block type="logic_compare" id="`$`;opK5g[}gCEm,4:yL">
                                                           <field name="OP">EQ</field>
                                                           <value name="A">
                                                             <block type="get_value" id=";ryN7Zn(IjZTeR6!*0^+">
                                                               <field name="ATTR">val</field>
                                                               <field name="OID">0_userdata.0.bewaesserung.zeitplan.feste_startzeit_1.feste_startzeit_1_aktiv</field>
                                                             </block>
                                                           </value>
                                                           <value name="B">
                                                             <block type="logic_boolean" id="3h:08gGQ8;S40ORy11KN">
                                                               <field name="BOOL">TRUE</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="logic_compare" id="?%FO.T;*aFVatp%C.UFX">
                                                           <field name="OP">EQ</field>
                                                           <value name="A">
                                                             <block type="get_value" id=",_y:hx.J`J-.^y.%J9kj">
                                                               <field name="ATTR">val</field>
                                                               <field name="OID">0_userdata.0.bewaesserung.bewaesserung_heute</field>
                                                             </block>
                                                           </value>
                                                           <value name="B">
                                                             <block type="logic_boolean" id="-*UgUpRdmB{Y)sjfBUx*">
                                                               <field name="BOOL">TRUE</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <statement name="DO0">
                                                     <block type="comment" id="(L`yh+IHQ90,CD5qZ(Av">
                                                       <field name="COMMENT">Aktor aktivieren</field>
                                                       <next>
                                                         <block type="control" id="Y([XFfP/Q$N4Jd69D4Tb">
                                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                           <field name="OID">Object ID</field>
                                                           <field name="WITH_DELAY">FALSE</field>
                                                           <value name="VALUE">
                                                             <block type="logic_boolean" id="w*I`e0#t6y^#zdnCUOq0">
                                                               <field name="BOOL">TRUE</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </statement>
                                                 </block>
                                               </statement>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                        </xml>
                        

                        W 1 Reply Last reply Reply Quote 1
                        • W
                          WaMa73 @Kuddel last edited by

                          @kuddel ich würde feste Uhrzeiten bevorzugen. Glaube am einfachsten ist es den 4CH dauerhaft mit Spannung zu versorgen und den ganzen Zauber sein zu lassen. Der CH4 verbraucht zwar 4-6 Watt im Leerlauf, aber egal.
                          Der POW und der mini (kam erst nachträglich um die Pumpe "vor Ort" einzuschalten) sind dauerhaft versorgt. Der POW schaltet dann den 4CH und den Trafo dazu.

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Kuddel @WaMa73 last edited by

                            @wama73 siehe Post von eben...

                            W 1 Reply Last reply Reply Quote 1
                            • W
                              WaMa73 @Kuddel last edited by

                              @kuddel super, vielen Dank. Hab den Post beim Scheiben nicht gesehen😎
                              Werde beide Varianten mal probieren, also dauerhaft versorgt und Deine Lösung. Komme aber wohl erst am WE dazu.

                              1 Reply Last reply Reply Quote 0
                              • P
                                puppet1912 last edited by

                                Mahlzeit die Herren,

                                Das Script von @Kuddel läuft bei mir nun auch schon eine Weile und das auch zuverlässig. Da ich vor 18 Tagen komplett neu angesäht habe, nutze ich derzeit vorallem die Intervallschaltung. Dafür nochmals Danke 😉
                                Allerdings konnte ich diese nicht mehr unterbrechen. Also egal ob die Automatik ausgeschalten wurde oder die Intervalle per Haken in der VIS abgeschalten wurden, es liefen alle zuvor geplanten Durchgänge bis zum erreichen der geplanten Anzahl.

                                Ich war mal so frei und habe zumindest für mich ein workarround erarbeitet, was bis dato ganz gut läuft. Fehler hatte ich noch keine. Ob das dem ursprünglichen Script gerecht wird, sei dahin gestellt. Letztlich habe ich nur noch zwei kleine Abfragen eingefügt.

                                intervallpause.JPG

                                Wenn die Intervall_Startzeit = false gesetzt wird, läuft das Intervall zwar weiter, es wird aber keine Bewässerung ausgelöst. Quasi ein pausieren.
                                Wenn die Automatik = false, dann wird das Intervall komplett abgebrochen. Letzteres ist zwar etwas unsauber, aber funktioniert.

                                Beste Grüße

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  Kuddel @puppet1912 last edited by

                                  @puppet1912 danke für den Hinweis.

                                  Das habe ich gar nicht bedacht.

                                  Für mich war eigentlich klar, dass man die Intervall Schaltung aktiviert und sie dann vis zum Ende durchläuft. An einen Stop habe ich gar nicht gedacht 😀

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    puppet1912 @Kuddel last edited by

                                    @kuddel Gerne doch.

                                    Ich hatte es jetzt immer mal, dass es trotz anderer Vorhersage etwas geregnet hat. Daher war es ab und an mal notwendig die Intervalle zu unterbrechen/abzuschalten.

                                    Im Prinzip finde ich die Variante mit dem Pausieren ganz gut, dann kann man es ohne große Dateneingabe wieder weiter laufen lassen, falls es doch nicht so dolle geregnet hat. Sicherlich aber eine Grenzanwendung für die Neuansaht. Und es erhöht den WAF deutlich.

                                    Im "Sonst" wo der Debug-Block fürs Stoppen steht: Hier wollte ich eigentlich noch den Wert für den aktuellen Durchlauf auf den Wert für die Gesamtanzahl setzen. Das dieser auch stimmt. Allerdings ist noch irgendwie im Script ein Zähler der das verhindert hat. War aber heute Nacht zu faul zum Suchen, da es auch so funktioniert hat.

                                    Grüße

                                    1 Reply Last reply Reply Quote 0
                                    • W
                                      WaMa73 @Kuddel last edited by

                                      @kuddel habe gerade beide Varianten getestet. Also dauerbestromt und Dein Blockly. Beides funktioniert super.
                                      Warte noch auf die Rückmeldung von DasWetter.com zur Nutzung der API. Dann wird es wohl die dauerbestomte Lösung. Aber nochmals danke.

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        puppet1912 last edited by puppet1912

                                        Hallo zusammen!

                                        Ich hatte immer mal wieder den Fall, dass mein Shelly für den Trafo zum Zeitpunkt der Beendigung des Bewässerungsdurchlaufs nicht mehr erreichbar war. Wlan-Verbdinung ist top und alle anderen die direkt daneben sitzen, waren erreichbar. Da die Zeit auffällig war bin ich mal auf die Suche im Script gegangen. Und siehe da, da haben sich noch ein paar Fehler eingeschlichen. Und was mir vorher gar nicht aufgefallen ist, beim PumpenAktor und Netzteilaktor wird keine AutoOffTime gesetzt. In beiden Fällen waren vermutlich durch Copy-Paste noch falsche Variablen im Script verwendet....ich habe das mal geändert und jetzt läuft alles wie gedacht.

                                        Im linken Teil des Scripts wo die DPs für "Aktor Typen ON_Time" gesetzt werden, ist im Teil für "Pumpe" und im Teil für "Ventil Netzteil" noch ein falscher DP gesetzt. Dieser ist im Bild schon korrigiert, im ursprünglichen Script ist an der Stelle noch der Aktor 6 eingetragen.

                                        Aktor6_pump.JPG

                                        Des Weiteren im Block 4.2 - Ventil-Netzteil. Hier war im Block für die Einschaltdauer des Netzteils noch die Variable für die Pumpe drin. Ist im Bild ebenfalls schon geändert und läuft. Jetzt habe ich auch einen AutoOff für den Shelly am Trafo.

                                        Änderung_4.2.TypNT.JPG

                                        Bis dato ist auch mein Shelly durchgängig erreichbar. Kann es mir zwar nicht ganz erklären, aber wann kann man das schon...

                                        Beste Grüße

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kuddel @puppet1912 last edited by Kuddel

                                          @puppet1912 danke fürs testen. Copy & Paste Fehler kommen dann leider doch mal wieder vor.

                                          Ich werde dann nächste Woche mal versuchen alle von Euch gefundenen Bugs aufzulisten ubd dann zu beheben.

                                          Vielen Dank ab alle für die Zuarbeit 🙂

                                          Ich werde mal überlegen, das ganze Projekt bei Github abzulegen. Dann kann man für jedes Problem / jeden Bug ein Issue erstellen und ich behalte den Überblick, was zu tun ist.

                                          P 1 Reply Last reply Reply Quote 0
                                          • P
                                            puppet1912 @Kuddel last edited by

                                            @kuddel
                                            Klar, gerne doch. Gerade wenn man selber nicht alle Funktionen nutzt, verliert man sicher schnell den Überblick und merkt es dann logischerweise im eigenen Betrieb nicht.

                                            Evtl wäre es auch ein gute Idee, dass Script etwas zu "verschlanken". Im Editor benötigt das Script schon mehrere Sekunden bis es erscheint. Was hältst du davon, wenn man quasi von vorn herein verschiedene Versionen anbietet. Ich für meinen Teil nutze ausschließlich Shellys und ich denke die meisten werden nur einen Hersteller nutzen. So könnte man schon viele "falls-Abfragen" entfernen und von vornherein eine Version für HM, Shelly oder andere erstellen. Ich unterstütze dich da auch gerne. Meine Skills sind zwar begrenzt, aber da ist ja auch viel Fleißarbeit dabei.
                                            Ebenso wäre es denbkar, zumindest habe ich das jetzt schon öfter gesehen, gewisse Dinge in ein zweites Script auszulagern. Das setzen der ganzen DPs und beispielsweise, dass passiert ja in der Regel nur einmal.

                                            Beste Grüße

                                            K 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            731
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            76
                                            1187
                                            298270
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo