Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Einfache Programmierung - womit?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einfache Programmierung - womit?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Asgothian
      Asgothian Developer @wrod last edited by Asgothian

      @wrod sagte in Einfache Programmierung - womit?:

      Womit lässt sich das am einfachsten und ressoucenschonendsten umsetzen?

      Ressourcenschonend ist bei den vorhandenen Methoden vollständig abhängig von der Umsetzung.

      Ich würde wenn Du keine Programmiererfahrung besitzt auf Blockly oder NodeRed setzen. Ich fürchte die Anwendung ist zu komplex für "rules".
      Mit Programmiererfahrung: JS oder Typescript.

      Wie würde ich es umsetzen ?

      • Eine Liste anlegen in die ich die Zeitstempel der Schaltvorgänge hinein speichere.
      • bei jedem erkannten Schaltvorgang alle Schaltvorgänge die älter sind als meine Abschaltzeit aus der Liste entfernen.
      • Ausschalten wenn danach noch mehr als n Einträge in der Liste sind.

      A.

      W 1 Reply Last reply Reply Quote 0
      • J
        Jan1 @wrod last edited by

        @wrod
        Na mit nem Script und wenn keine Programmierkennrisse vorhanden sind eben mit nem Blockly Script.
        Dafür brauchst dann den JS-Adapter.

        Wenn das Dein erstes Blockly werden soll, wirst wohl sehr schnell an Deine grenzen stoßen, ist aber eigentlich recht einfach wenn man mal den Bogen raus hat. Bei Blockly Scripten ist paul53 der Spezi und klickt da alles sehr schnell und übersichtlich zusammen 😉

        Falls Ich Deine Frage überhaupt richtig verstanden habe.

        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @wrod last edited by mickym

          @wrod Nun so einfach ist es nicht - mit der einfachen Programmierung, insbesondere wenn es nicht nur um, wenn dann geht, sondern selbst gezählt werden muss etc.

          Im Prinzip hast Du aber zur Logiksteuerung im iobroker viele und tolle Möglichkeiten.

          Die meisten verwenden Blockly
          Ich hingegen bevorzuge NodeRed, da man in meinen Augen die Logik gut visualisieren kann und viele Aufgaben mit fertigen Nodes bereits durchführbar sind (zum Zählen von Ereignissen gibt es zum Beispiel eine Aggregator Node etc.)
          Viele arbeiten sich in Javascript ein. Javascript ist eine Sprache die sowohl Blockly als auch NodeRed zugrunde liegt.

          Anhand der Poster vorweg - siehst Du das jeder so seine Präferenzen hat. 🙂

          1 Reply Last reply Reply Quote 0
          • A
            AndyGR42 @wrod last edited by AndyGR42

            @wrod Wenn Du deiner Pumpe etwas Gutes tun möchtest spendierst Du ihr ein Ausdehnungsgefäß. Das reduziert die Starts erheblich (auch bei geringer Entnahme) und erhöht die Lebensdauer.

            P.S.: So oft wie deine Pumpe anspringt scheint es aber irgendwo ein Leck zu geben. Eventuell muss auch das Rückschlagventil mal gereinigt werden.

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @wrod last edited by mickym

              @wrod

              Ich habe aber trotzdem noch eine blöde Frage. Wenn Du schon einen Shelly nutzt um die Pumpe mit Strom zu versorgen bzw. abzudrehen, warum nutzt Du dann nicht den eingebauten Auto Off Timer im Shelly. Du schaltest also zu Beginn des Wässerns ein und dann schaltet der Selly einfach automatisch nach x Minuten aus. Dann brauchst garnichts programmieren.

              E9475B2C-4AFE-4988-B022-59735F7CF49E.jpeg

              W 1 Reply Last reply Reply Quote 1
              • W
                wrod @mickym last edited by

                @mickym Mist, erwischt!

                Nein im Ernst: ja, den habe ich schon mit eingebaut. Aber wie das so ist, kommt man dann doch auf Ideen, ob es nicht noch flexibler etc. geht.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @wrod last edited by paul53

                  @wrod sagte: Wenn man beim Wässern per Hand ein- oder zweimal kurz abschaltet, soll das NICHT zur Unterbrechung führen,

                  Angelehnt an den Vorschlag von @Asgothian: Wenn die Zeitspanne zwischen 4 mal Ausschalten kleiner als 5 Minuten ist, wird abgeschaltet:

                  Bild_2021-07-12_114441.png

                  Wert und vorheriger Wert sind lokale Variablen des Triggers.

                  W 1 Reply Last reply Reply Quote 1
                  • W
                    wrod @paul53 last edited by

                    @paul53 OHA, danke! Ein fertiges Programm wollte ich gar nicht verlangen, sondern nur wissen, wie man das machen kann. Das ist ja ein toller Service. Da versuche ich demnächst mal einzubauen.

                    1 Reply Last reply Reply Quote 0
                    • W
                      wrod @Asgothian last edited by

                      @asgothian Danke! das hilft schon mal gut weiter!

                      1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @wrod last edited by

                        @wrod In NodeRed würde ich es dann halt so implementieren:

                        a4617871-94b9-4938-8b25-37cc245f2f4b-image.png

                        [
                           {
                               "id": "cddb8004.e28f2",
                               "type": "tab",
                               "label": "Flow 1",
                               "disabled": false,
                               "info": ""
                           },
                           {
                               "id": "4af23165.da59f",
                               "type": "ioBroker in",
                               "z": "cddb8004.e28f2",
                               "name": "",
                               "topic": "Stromverbrauch",
                               "payloadType": "value",
                               "onlyack": "",
                               "func": "all",
                               "gap": "",
                               "fireOnStart": "false",
                               "x": 120,
                               "y": 180,
                               "wires": [
                                   [
                                       "795c75ed.ee017c"
                                   ]
                               ]
                           },
                           {
                               "id": "795c75ed.ee017c",
                               "type": "switch",
                               "z": "cddb8004.e28f2",
                               "name": "Digitalisieren <  100 oder >100",
                               "property": "payload",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "lt",
                                       "v": "100",
                                       "vt": "num"
                                   },
                                   {
                                       "t": "gt",
                                       "v": "100",
                                       "vt": "num"
                                   }
                               ],
                               "checkall": "true",
                               "repair": false,
                               "outputs": 2,
                               "x": 350,
                               "y": 180,
                               "wires": [
                                   [
                                       "99041bb7.81b3c8"
                                   ],
                                   [
                                       "3a8ed73.056db28"
                                   ]
                               ]
                           },
                           {
                               "id": "99041bb7.81b3c8",
                               "type": "change",
                               "z": "cddb8004.e28f2",
                               "name": "<100 entspricht 0",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "0",
                                       "tot": "num"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 620,
                               "y": 160,
                               "wires": [
                                   [
                                       "5bd527f3.cb4248"
                                   ]
                               ]
                           },
                           {
                               "id": "3a8ed73.056db28",
                               "type": "change",
                               "z": "cddb8004.e28f2",
                               "name": ">100 entspricht 1",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "1",
                                       "tot": "num"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 620,
                               "y": 200,
                               "wires": [
                                   [
                                       "5bd527f3.cb4248"
                                   ]
                               ]
                           },
                           {
                               "id": "5bd527f3.cb4248",
                               "type": "rbe",
                               "z": "cddb8004.e28f2",
                               "name": "Nur Umschaltvorgänge werten",
                               "func": "rbe",
                               "gap": "",
                               "start": "",
                               "inout": "out",
                               "septopics": true,
                               "property": "payload",
                               "x": 870,
                               "y": 180,
                               "wires": [
                                   [
                                       "19019c1c.c8ed24"
                                   ]
                               ]
                           },
                           {
                               "id": "3e9ac029.f28a2",
                               "type": "aggregator",
                               "z": "cddb8004.e28f2",
                               "name": "Anzahl innerhalb 5 Minuten",
                               "topic": "",
                               "intervalCount": "5",
                               "intervalUnits": "m",
                               "submitIncompleteInterval": true,
                               "submitPerTopic": false,
                               "aggregationType": "sum",
                               "x": 1360,
                               "y": 180,
                               "wires": [
                                   [
                                       "6c24b8c8.333768"
                                   ]
                               ]
                           },
                           {
                               "id": "19019c1c.c8ed24",
                               "type": "change",
                               "z": "cddb8004.e28f2",
                               "name": "Umschaltvorgang = 1",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "1",
                                       "tot": "num"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1120,
                               "y": 180,
                               "wires": [
                                   [
                                       "3e9ac029.f28a2"
                                   ]
                               ]
                           },
                           {
                               "id": "6c24b8c8.333768",
                               "type": "switch",
                               "z": "cddb8004.e28f2",
                               "name": "wenn mehr als 4 innerhalb von 5 Minuten",
                               "property": "payload",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "gt",
                                       "v": "4",
                                       "vt": "num"
                                   }
                               ],
                               "checkall": "true",
                               "repair": false,
                               "outputs": 1,
                               "x": 1660,
                               "y": 180,
                               "wires": [
                                   [
                                       "379ca42.4409e5c"
                                   ]
                               ]
                           },
                           {
                               "id": "379ca42.4409e5c",
                               "type": "ioBroker out",
                               "z": "cddb8004.e28f2",
                               "name": "abschalten",
                               "topic": "",
                               "ack": "false",
                               "autoCreate": "false",
                               "stateName": "",
                               "role": "",
                               "payloadType": "",
                               "readonly": "",
                               "stateUnit": "",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 1910,
                               "y": 180,
                               "wires": []
                           }
                        ]
                        

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @mickym last edited by paul53

                          @mickym sagte: In NodeRed

                          Anmerkung zu "Umschaltvorgang = 1": Die Abschaltung erfolgt unmittelbar nach Einschalten der Pumpe. Das ist für die Pumpe nicht so gut und der Shelly schaltet unter Last ab.

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @paul53 last edited by mickym

                            @paul53 sagte in Einfache Programmierung - womit?:

                            @mickym sagte: In NodeRed

                            Anmerkung zu "Umschaltvorgang = 1": Die Abschaltung erfolgt unmittelbar nach Einschalten der Pumpe. Das ist für die Pumpe nicht so gut und der Shelly schaltet unter Last ab.

                            OK habe ich verstanden und gesehen, dass Du nur die abfallenden Ereignisse nimmst, indem Du mit dem vorangegangen Wert vergleichst. (Hier hast Du natürlich Dein Praxiswissen mit einfließen lassen - Super!) 🙂

                            Ich hab den Flow nun geändert, in dem die IN Node nur triggert wenn der Unterschied 200W beträgt, also die Amplitude auf jedenfall groß genug ist und dann ebenfalls mit dem vorangegangenen Wert vergleiche. Dann würde der Flow etwas einfacher aussehen:

                            13cf9c06-ca7a-4512-881b-f3a6419890ea-image.png

                            fdd358ea-df3e-44a7-9e5b-4bb6837224c4-image.png a1c91eb5-8825-4389-bf16-dfb280b5e1f8-image.png

                            [
                               {
                                   "id": "ef5b05aa.c1b068",
                                   "type": "ioBroker in",
                                   "z": "315f28dc.e47ab8",
                                   "name": "",
                                   "topic": "Stromverbrauch nur wenn 200 Watt Unterschied",
                                   "payloadType": "value",
                                   "onlyack": "",
                                   "func": "deadband",
                                   "gap": "200",
                                   "fireOnStart": "false",
                                   "x": 220,
                                   "y": 180,
                                   "wires": [
                                       [
                                           "ecd85865.cb5bf8"
                                       ]
                                   ]
                               },
                               {
                                   "id": "ecd85865.cb5bf8",
                                   "type": "switch",
                                   "z": "315f28dc.e47ab8",
                                   "name": "Filtern wenn kleiner vorheriger Wert",
                                   "property": "payload",
                                   "propertyType": "msg",
                                   "rules": [
                                       {
                                           "t": "lt",
                                           "v": "",
                                           "vt": "prev"
                                       }
                                   ],
                                   "checkall": "true",
                                   "repair": false,
                                   "outputs": 1,
                                   "x": 560,
                                   "y": 180,
                                   "wires": [
                                       [
                                           "5ac44aa1.ecdfb4"
                                       ]
                                   ]
                               },
                               {
                                   "id": "5ac44aa1.ecdfb4",
                                   "type": "change",
                                   "z": "315f28dc.e47ab8",
                                   "name": "abfallend entspricht 1",
                                   "rules": [
                                       {
                                           "t": "set",
                                           "p": "payload",
                                           "pt": "msg",
                                           "to": "1",
                                           "tot": "num"
                                       }
                                   ],
                                   "action": "",
                                   "property": "",
                                   "from": "",
                                   "to": "",
                                   "reg": false,
                                   "x": 840,
                                   "y": 180,
                                   "wires": [
                                       [
                                           "c20da9c0.2dce58"
                                       ]
                                   ]
                               },
                               {
                                   "id": "c20da9c0.2dce58",
                                   "type": "aggregator",
                                   "z": "315f28dc.e47ab8",
                                   "name": "Anzahl innerhalb 5 Minuten",
                                   "topic": "",
                                   "intervalCount": "5",
                                   "intervalUnits": "m",
                                   "submitIncompleteInterval": true,
                                   "submitPerTopic": false,
                                   "aggregationType": "sum",
                                   "x": 1100,
                                   "y": 180,
                                   "wires": [
                                       [
                                           "1d843dd5.43e972"
                                       ]
                                   ]
                               },
                               {
                                   "id": "1d843dd5.43e972",
                                   "type": "switch",
                                   "z": "315f28dc.e47ab8",
                                   "name": "wenn mehr als 4 innerhalb von 5 Minuten",
                                   "property": "payload",
                                   "propertyType": "msg",
                                   "rules": [
                                       {
                                           "t": "gt",
                                           "v": "4",
                                           "vt": "num"
                                       }
                                   ],
                                   "checkall": "true",
                                   "repair": false,
                                   "outputs": 1,
                                   "x": 1420,
                                   "y": 180,
                                   "wires": [
                                       [
                                           "98dc1b62.29fb78"
                                       ]
                                   ]
                               },
                               {
                                   "id": "98dc1b62.29fb78",
                                   "type": "ioBroker out",
                                   "z": "315f28dc.e47ab8",
                                   "name": "abschalten",
                                   "topic": "",
                                   "ack": "false",
                                   "autoCreate": "false",
                                   "stateName": "",
                                   "role": "",
                                   "payloadType": "",
                                   "readonly": "",
                                   "stateUnit": "",
                                   "stateMin": "",
                                   "stateMax": "",
                                   "x": 1690,
                                   "y": 180,
                                   "wires": []
                               }
                            ]
                            

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              AndyGR42 @mickym last edited by

                              Auch wenn ich mich wiederhole, eine Tauchdruckpumpe, welche einmal pro Minute anspringt weil sie den Druck verliert, die braucht kein Script sondern einen Klempner 😉

                              Asgothian 1 Reply Last reply Reply Quote 1
                              • Asgothian
                                Asgothian Developer @AndyGR42 last edited by

                                @andygr42 sagte in Einfache Programmierung - womit?:

                                Auch wenn ich mich wiederhole, eine Tauchdruckpumpe, welche einmal pro Minute anspringt weil sie den Druck verliert, die braucht kein Script sondern einen Klempner 😉

                                Klempner sind aber teurer als Skripte 😉

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  AndyGR42 @Asgothian last edited by

                                  @asgothian Pumpen auch.... 😉

                                  Asgothian 1 Reply Last reply Reply Quote 0
                                  • Asgothian
                                    Asgothian Developer @AndyGR42 last edited by

                                    @andygr42 sagte in Einfache Programmierung - womit?:

                                    @asgothian Pumpen auch.... 😉

                                    Bliebe nur die Frage: sind Pumpen teurer als Klempner 🤣

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    682
                                    Online

                                    31.9k
                                    Users

                                    80.1k
                                    Topics

                                    1.3m
                                    Posts

                                    blockly javascript
                                    6
                                    17
                                    495
                                    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