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.
    • K
      Kuddel @dslraser last edited by

      @dslraser ja genau,
      in den DP schreiben alle Skripte

      dslraser 2 Replies Last reply Reply Quote 1
      • dslraser
        dslraser Forum Testing Most Active @Kuddel last edited by dslraser

        @Kuddel
        ich habe ja wie gesagt keine Variablen definiert (deaktiviert bei mir). Ich lese nur von Anfang an mit, weil ich auch eine Bewässerung habe, aber mit einem eigenen Blockly (Gardena Irrigation Control), daher verfolge ich Dein Blockly mit.

        Läuft es denn, so wie es jetzt ist, bei Dir, und sind die Fehler beim erstellen weg ? Ich denke jedenfalls, das es so etwas einfacher sein wird es ein zu richten, da Niemand mehr in der Funktion "rum fummeln" muß, oder ?

        1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active @Kuddel last edited by

          @Kuddel

          und noch kurz zum Thema Telegram (als Funktion)
          Das ist so eine Funktion
          Bildschirmfoto 2020-07-21 um 15.10.20.png
          Da steht nur das drinn
          Bildschirmfoto 2020-07-21 um 15.10.04.png

          nachrichten_ausgabe_Fenster (das ist eine Variable, damit versende ich den Inhalt der Variablen)
          user ist auch eine Variable
          Bildschirmfoto 2020-07-21 um 15.10.58.png

          Das ist schon alles

          <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defcustomnoreturn" id="CCNu56#{~(_si(DRsE?3" x="3087" y="63">
           <mutation statements="false">
             <arg name="text" varid="}EpAzzYRfwhb1A)A(XeC"></arg>
             <arg name="user" varid="P?z/xFrLT[K3ne:+:}^w"></arg>
           </mutation>
           <field name="NAME">Telegram_Fenster</field>
           <field name="SCRIPT">c2VuZFRvKCJ0ZWxlZ3JhbSIsICJzZW5kIiwgewogICAgdGV4dDogbmFjaHJpY2h0ZW5fYXVzZ2FiZV9GZW5zdGVyLAogICAgdXNlcjogVGVsZWdyYW1fRW1wZmFlbmdlciwKICAgIHBhcnNlX21vZGU6ICJodG1sIiwKfSk7</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          

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

            @dslraser ich habe telegram jetzt wie folgt eingebaut:

            b2016fad-2aba-42ca-bdb3-0b10f3578cdc-grafik.png

            sendTo("telegram", "send", {
                text: vars_notify_telegram_text,
                user: vars_notify_telegram_user,
                parse_mode: "html",
            });
            

            Beispiel pause

            861142b3-479a-480c-a6dd-1ab44a291804-grafik.png

            Muss da noch ein Block unter den Text um die Telegram-Funktion zu starten?

            dslraser 1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active @Kuddel last edited by

              @Kuddel
              Du versendest ja die info.text , richtig ?
              also so wie hier

              Bildschirmfoto 2020-07-21 um 16.07.56.png

              oder hier

              Bildschirmfoto 2020-07-21 um 16.08.06.png

              Dann musste in der Funktion text: info.text, stehen

              Ansonsten, wenn es so ist wie in Deinem Bild, dann müsstest Du den Funktions Block für Telegram in Dein mache setzen.
              (wenn ich Dich richtig verstanden habe)

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

                @dslraser ich habe es jetzt so gemacht

                sendTo("telegram", "send", {
                    text: info_text,
                    user: vars_notify_telegram_user,
                    parse_mode: "html",
                });
                

                Das heißt ja aber, dass die Telegram Nachricht immer verschickt wird oder ?

                Wie muss die Prüfun aussehen im Java Block ?

                EDIT:

                oder funzt es so:

                95a21232-caa1-41dc-8be7-10d0a81b4cc5-grafik.png

                dslraser 1 Reply Last reply Reply Quote 1
                • dslraser
                  dslraser Forum Testing Most Active @Kuddel last edited by

                  @Kuddel
                  ich wollte Dir gerade an meinem Beispiel schreiben....

                  ich sammele die zu versendende Nachricht in einer Variable ein

                  z.B. so
                  Bildschirmfoto 2020-07-21 um 16.34.02.png

                  und versende die dan z.B. so
                  Bildschirmfoto 2020-07-21 um 16.32.36.png

                  K 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @Kuddel last edited by

                    @Kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:

                    Chris_71 bzgl. deines ersten Screenshots: stimmt, da war noch ein fehler. habe ich gefixt.

                    Fehler noch da!
                    Version: bewaesserung_v2.6.8_beta.txt.zip

                    javascript.0	2020-07-21 16:32:26.738	warn	(13700) State "javascript.0.bewaesserung.letzte_startzeit" not found
                    
                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kuddel @sigi234 last edited by

                      @sigi234 danke, habe den fehler gerade gefunden

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

                        @dslraser der nächste versuch ^^:

                        f004e5c9-a407-4c9e-82d5-867bea9e6072-grafik.png

                        sendTo("telegram", "send", {
                            text: vars_notify_telegram_text,
                            user: vars_notify_telegram_user,
                            parse_mode: "html",
                        });
                        
                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @Kuddel last edited by dslraser

                          @Kuddel
                          erstmal kannst Du die Funktion ja mal umbenennen (das _Fenster kann ja weg)

                          Der normale Telegram Block sieht so aus:
                          Bildschirmfoto 2020-07-21 um 16.50.30.png

                          Das ist die JS Ansicht von dem Block
                          Bildschirmfoto 2020-07-21 um 16.50.50.png

                          also das was hinter text: blabla
                          ist die Nachricht.
                          (den Block stelle ich Dir gleich rein, ich bin am Handy)

                          wenn Du keinen Empfänger angibst bekommen es alle die am BOT angemeldet sind, sonst nur der /die Empfänger

                          also so z.B.
                          Bildschirmfoto 2020-07-21 um 16.55.29.png

                          JS
                          Bildschirmfoto 2020-07-21 um 16.55.43.png

                          Das Gleiche kann/macht die Funktion
                          Das ist noch der Parsmode
                          Bildschirmfoto 2020-07-21 um 16.58.31.png

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

                            @dslraser alles klar, dann habe ich es jetzt glaube ich begriffen

                            sendTo("telegram", "send", {
                                text: vars_notify_telegram_text,
                                user: vars_notify_telegram_user,
                                parse_mode: "html",
                            });
                            

                            f35fa340-6e24-4ef2-b24a-694929b7e872-grafik.png

                            sigi234 1 Reply Last reply Reply Quote 0
                            • sigi234
                              sigi234 Forum Testing Most Active @Kuddel last edited by

                              @Kuddel
                              Kann ich schon testen?
                              V 2.6.8 aktuell?

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

                                @sigi234 klaro

                                bewaesserung_v2.6.8.zip

                                D sigi234 dslraser 3 Replies Last reply Reply Quote 1
                                • D
                                  darkiop Most Active @Kuddel last edited by

                                  @Kuddel Hui, hier ging heut ja richtig was 😄 Ich schaus mir morgen an - morgen frueh hab ich mal 2h keine Termine 😄

                                  1 Reply Last reply Reply Quote 0
                                  • sigi234
                                    sigi234 Forum Testing Most Active @Kuddel last edited by sigi234

                                    @Kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:

                                    @sigi234 klaro

                                    bewaesserung_v2.6.8.

                                    Test:

                                    Anzahl Ventile habe ich auf 6 erhöht, Im DP steht noch immer 5

                                    Fehler ist jetzt weg: State "javascript.0.bewaesserung.letzte_startzeit" not found

                                    Beim aktivieren von Ventil 2 ist die Restzeit Falsch bzw, wird nicht gestartet.

                                    Screenshot (263).png

                                    Screenshot (266).png

                                    1 Reply Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @Kuddel last edited by dslraser

                                      @Kuddel

                                      zum Test von @sigi234

                                      Test:

                                      Anzahl Ventile habe ich auf 6 erhöht, Im DP steht noch immer 5

                                      Dazu müßte man in der Funktion Datenpunkte_erstellen was verändern.

                                      Ich habe Dir hier mal ein Beispiel eingebaut. Schau Dir einfach mal die Funktion Datenpunkte_erstellen an.
                                      Dort habe ich die Anzahl der Ventile "ausgegliedert" und auf true gestellt, so wird der DP beim Neustart vom Blockly neu geschrieben. Das könntest Du auch mit den DP machen, die die Namen für die Kreise beinhalten. (ich weiß nur nicht ob der DP auch in den Objekten beschreibbar sein soll, oder nur zur Anzeige dient ? Wenn der auch von dort aus die Einstellungen verändern soll, dann muß das noch etwas anders gemacht werden. Wenn es nur eine "Anzeige" ist, wieviele Ventile da sind, dann würde ich den read only machen)
                                      Unten in der Funktion habe ich Dir mal ein Beispiel (für die 6 Ventile) eingebaut, wie Du nicht benötigte DP wieder löschen kannst. Wird also im Blockly in den Haupteinstellungen die Anzahl der Ventile z.B. auf 4 eingestellt, dann werden Ventil 5 und 6 in den Objekten wieder gelöscht. Ich weiß nur nicht, ob Du noch einen anderen Bezug auf die Ventile im Blockly hast ?

                                      Datei ist nur für @Kuddel , da vieles deaktiviert ist.
                                      bewaesserung_v2.6.8-test.txt.zip

                                      EDIT: übrigens....

                                      (3984) You are assigning a number to the state "0_userdata.0.Bewaesserung.zeitplan.abends_verzoegerung_sonnenuntergang" which expects a string. Please fix your code to use a string or change the stat
                                      (3984) You are assigning a number to the state "0_userdata.0.Bewaesserung.zeitplan.morgens_verzoegerung_sonnenaufgang" which expects a string. Please fix your code to use a string or change the state
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        Kuddel last edited by

                                        @sigi234 vielen Dank für den Test. Bei mir startet Ventil 2 ohne Problem.

                                        @dslraser die beiden von dir angemerkte DPs habe ich korrigiert

                                        ich habe deine Anpassung für die Ventil-Anzahl übernommen

                                        //Diese DPs sollen bei jedem Speichern überschrieben werden
                                        let vars_writable = [
                                            [basic_vars_pfad+'.ventile.anzahl_ventile', {'name':'anzahl_ventile','type':'number','read':true,'write':true,'role':'number','def':basic_vars_anzahl_ventile,'min':0, 'max':6} ],
                                        ]
                                        createUserStates(basic_vars_speicherort, true, vars_writable);
                                        

                                        Die Namen wollte ich noch den Block integrieren, aber ich glaube nicht, dass das so funzt

                                        //Diese DPs sollen bei jedem Speichern überschrieben werden
                                        let vars_writable = [
                                            [basic_vars_pfad+'.ventile.anzahl_ventile', {'name':'anzahl_ventile','type':'number','read':true,'write':true,'role':'number','def':basic_vars_anzahl_ventile,'min':0, 'max':6} ],
                                        if(basic_vars_anzahl_ventile > 1) {[basic_vars_pfad+'.ventile.ventil_1.ventil_1_name', {'name':'ventil_1_name','type':'string','read':true,'write':true,'role':'string','def':basic_vars_kreis1_name}],}
                                        ]
                                        createUserStates(basic_vars_speicherort, true, vars_writable);
                                        
                                        dslraser 2 Replies Last reply Reply Quote 0
                                        • dslraser
                                          dslraser Forum Testing Most Active @Kuddel last edited by

                                          @Kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:

                                          Die Namen wollte ich noch den Block integrieren, aber ich glaube nicht, dass das so funzt

                                          ich schau mal und melde mich.

                                          1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @Kuddel last edited by dslraser

                                            @Kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:

                                            ich habe deine Anpassung für die Ventil-Anzahl übernommen

                                            //Diese DPs sollen bei jedem Speichern überschrieben werden
                                            let vars_writable = [
                                                [basic_vars_pfad+'.ventile.anzahl_ventile', {'name':'anzahl_ventile','type':'number','read':true,'write':true,'role':'number','def':basic_vars_anzahl_ventile,'min':0, 'max':6} ],
                                            ]
                                            createUserStates(basic_vars_speicherort, true, vars_writable);
                                            

                                            Soll/muss der wirklich in den Objekten/VIS bedienbar sein, oder ist es "nur" eine Anzeige ?

                                            sonst mach

                                            'write':false

                                            und dafür 'max':6könntest Du auch Deine Variable basic_vars_anzahl_ventile anstelle der 6 nehmen, dann wird die max Anzahl im DP übernommen. (also auch im RAW)

                                            sonst Vorschlag

                                            //Diese DPs sollen bei jedem Speichern überschrieben werden
                                            let vars_writable = [
                                                [basic_vars_pfad+'.ventile.anzahl_ventile', {'name':'anzahl_ventile','type':'number','read':true,'write':false,'role':'number','def':basic_vars_anzahl_ventile,'min':0, 'max':basic_vars_anzahl_ventile} ],
                                            ]
                                            createUserStates(basic_vars_speicherort, true, vars_writable);
                                            
                                            

                                            Der RAW sieht dann bei z.B. 4 Ventilen so aus

                                            {
                                              "from": "system.adapter.javascript.0",
                                              "user": "system.user.admin",
                                              "ts": 1595411381243,
                                              "common": {
                                                "name": "anzahl_ventile",
                                                "type": "number",
                                                "role": "number",
                                                "def": 4,
                                                "min": 0,
                                                "max": 4,
                                                "read": true,
                                                "false": true
                                              },
                                              "native": {},
                                              "acl": {
                                                "object": 1636,
                                                "owner": "system.user.admin",
                                                "ownerGroup": "system.group.administrator",
                                                "state": 1636
                                              },
                                              "_id": "0_userdata.0.Bewaesserung.ventile.anzahl_ventile",
                                              "type": "state"
                                            }
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            713
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            76
                                            1187
                                            302512
                                            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