Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. shelly Status zur Fallunterscheidung nutzen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

shelly Status zur Fallunterscheidung nutzen

Scheduled Pinned Locked Moved Node-Red
38 Posts 2 Posters 1.8k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by
    #29

    An Deiner Stelle versteh ich auch nicht, warum du die Summe mit einem Slider setzt - macht es nicht Sinn, dass die Summe automatisch festgelegt wird - z.Bsp. durch den oberen Teil.

    435dabf8-141b-4f7a-95ac-da4d40ad39ef-image.png

    Musst Du aber wissen.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    R 2 Replies Last reply
    0
    • mickymM mickym

      An Deiner Stelle versteh ich auch nicht, warum du die Summe mit einem Slider setzt - macht es nicht Sinn, dass die Summe automatisch festgelegt wird - z.Bsp. durch den oberen Teil.

      435dabf8-141b-4f7a-95ac-da4d40ad39ef-image.png

      Musst Du aber wissen.

      R Offline
      R Offline
      Rudi 3
      wrote on last edited by
      #30

      @mickym Der Slider ist nur zu Testzwecken drin. Die für die Relaisschaltung relevante Summe kommt aus dem ersten Teil des Flows.

      R 1 Reply Last reply
      0
      • R Rudi 3

        @mickym Der Slider ist nur zu Testzwecken drin. Die für die Relaisschaltung relevante Summe kommt aus dem ersten Teil des Flows.

        R Offline
        R Offline
        Rudi 3
        wrote on last edited by
        #31

        @rudi-3 also abgezweigt von der Gesamtleistung. Wie ich schon sagte, der Flow ist durch die vielen Versuche leider ziemlich zerpflückt.

        R 1 Reply Last reply
        0
        • R Rudi 3

          @rudi-3 also abgezweigt von der Gesamtleistung. Wie ich schon sagte, der Flow ist durch die vielen Versuche leider ziemlich zerpflückt.

          R Offline
          R Offline
          Rudi 3
          wrote on last edited by
          #32

          @rudi-3 Wenn ich das Konzept richtig verstanden habe, müsste man die Summe von oben in das Objekt "Energiemanagement" aufnehmen?

          1 Reply Last reply
          0
          • mickymM mickym

            An Deiner Stelle versteh ich auch nicht, warum du die Summe mit einem Slider setzt - macht es nicht Sinn, dass die Summe automatisch festgelegt wird - z.Bsp. durch den oberen Teil.

            435dabf8-141b-4f7a-95ac-da4d40ad39ef-image.png

            Musst Du aber wissen.

            R Offline
            R Offline
            Rudi 3
            wrote on last edited by
            #33

            @mickym Sorry habe zwischendurch für eventuelle Mitleser meine Gedanken zur Hysterese zusammengefasst. Stimmt, das ist die halbe Miete. In der Praxis wird allerdings folgendes passieren: Wir erreichen z.B. 1000W Überschuss. Der Heizstab schaltet ein (700W). Dann liegt der Überschuss nur noch bei 300W. Dementsprechend groß muss die Hystere sein bzw. wird unnötig Strom verschenkt. Zudem soll der Heizstab nicht unnötig oft schalten. Daher möchte ich zum Schluss eine Verzögerung einbauen, die z.B. nur alle paar Minuten ein Schaltsignal an die Relais gibt. Dabei muss man natürlich abwägen, das hier kurzzeitig teurer Netzstrom ins Warmwasser geht.

            mickymM 2 Replies Last reply
            0
            • R Rudi 3

              @mickym Sorry habe zwischendurch für eventuelle Mitleser meine Gedanken zur Hysterese zusammengefasst. Stimmt, das ist die halbe Miete. In der Praxis wird allerdings folgendes passieren: Wir erreichen z.B. 1000W Überschuss. Der Heizstab schaltet ein (700W). Dann liegt der Überschuss nur noch bei 300W. Dementsprechend groß muss die Hystere sein bzw. wird unnötig Strom verschenkt. Zudem soll der Heizstab nicht unnötig oft schalten. Daher möchte ich zum Schluss eine Verzögerung einbauen, die z.B. nur alle paar Minuten ein Schaltsignal an die Relais gibt. Dabei muss man natürlich abwägen, das hier kurzzeitig teurer Netzstrom ins Warmwasser geht.

              mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by
              #34

              @rudi-3 Na mit der Ein und Ausschaltschwelle hast Du eine Hysterese - wenn Du Angst hast, dass das zeitlich beides zu häufig ausgelöst wird kannst Du die Nachrichtenrate begrenzen.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              R 1 Reply Last reply
              0
              • mickymM mickym

                @rudi-3 Na mit der Ein und Ausschaltschwelle hast Du eine Hysterese - wenn Du Angst hast, dass das zeitlich beides zu häufig ausgelöst wird kannst Du die Nachrichtenrate begrenzen.

                R Offline
                R Offline
                Rudi 3
                wrote on last edited by
                #35

                @mickym Meine Idee war, einfach die polling rate von den shellys zu nutzen. Die delay-node wollte nicht nutzen und nur an einer Stelle "bremsen".

                mickymM 1 Reply Last reply
                0
                • R Rudi 3

                  @mickym Meine Idee war, einfach die polling rate von den shellys zu nutzen. Die delay-node wollte nicht nutzen und nur an einer Stelle "bremsen".

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by mickym
                  #36

                  @rudi-3 Na musst Du sehen - hier der Flow ist fertig und nun kannst Du selbst einfach über Debug Nodes schauen, wie die Logik verläuft und musst auch keine unwahrscheinlichen Fälle berücksichtigen:

                  a131fd74-28bd-4308-a254-370ca778f507-image.png

                  [
                     {
                         "id": "63c4ad536edd32b7",
                         "type": "group",
                         "z": "a3ff42d9e3f31af7",
                         "style": {
                             "stroke": "#999999",
                             "stroke-opacity": "1",
                             "fill": "none",
                             "fill-opacity": "1",
                             "label": true,
                             "label-position": "nw",
                             "color": "#a4a4a4"
                         },
                         "nodes": [
                             "f994a4e33531a8c5",
                             "8673242f12284d52",
                             "27eecf831db301d2",
                             "bd2d29a18401d1c5",
                             "f5b7161642107f77",
                             "0a64877c69c15599",
                             "b4cd49fa76bc511c",
                             "860c69c409434a60",
                             "3345c9a98a678993",
                             "1d495447e96a3a24",
                             "d208c8c4552eed40",
                             "b4802b321ce23e92",
                             "cfef92ce1099aabc",
                             "68dcc9282e6f1562",
                             "4352e22b6fb056a1",
                             "1f6db3ae891ae6f9",
                             "4ade18cbedf1f800",
                             "e19cacdcf99fdc0f",
                             "08ed4a797b81c710",
                             "0fce39dffa24add3",
                             "1066884b98e7ebf3",
                             "ad8d7bae4667baf5"
                         ],
                         "x": 14,
                         "y": 919,
                         "w": 1952,
                         "h": 262
                     },
                     {
                         "id": "f994a4e33531a8c5",
                         "type": "inject",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Shelly Input",
                         "props": [
                             {
                                 "p": "status",
                                 "v": "{\"wifi_sta\":{\"connected\":true,\"ssid\":\"Kellerfritz\",\"ip\":\"192.168.2.196\",\"rssi\":-46},\"cloud\":{\"enabled\":false,\"connected\":false},\"mqtt\":{\"connected\":false},\"time\":\"15:16\",\"serial\":1,\"has_update\":true,\"mac\":\"10521C06EE47\",\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"temperature\":56.18,\"overtemperature\":false,\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"},\"update\":{\"status\":\"pending\",\"has_update\":true,\"new_version\":\"20230503-095750/v1.13.0-g9aed950\",\"old_version\":\"20191217-074901/1047-long-id-for-shelly-devices@ab2bdce7\"},\"ram_total\":49480,\"ram_free\":37016,\"fs_size\":233681,\"fs_free\":157628,\"voltage\":235.06,\"uptime\":6684}",
                                 "vt": "json"
                             },
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "{\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"}}",
                         "payloadType": "json",
                         "x": 130,
                         "y": 1020,
                         "wires": [
                             [
                                 "8673242f12284d52",
                                 "4ade18cbedf1f800",
                                 "1f6db3ae891ae6f9",
                                 "e19cacdcf99fdc0f"
                             ]
                         ]
                     },
                     {
                         "id": "8673242f12284d52",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "EnergieManagement",
                                 "pt": "msg",
                                 "to": "EnergieManagement",
                                 "tot": "flow"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 370,
                         "y": 1020,
                         "wires": [
                             [
                                 "b4cd49fa76bc511c"
                             ]
                         ]
                     },
                     {
                         "id": "27eecf831db301d2",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Status Relais 1",
                         "property": "payload.relays[0].ison",
                         "propertyType": "msg",
                         "rules": [
                             {
                                 "t": "true"
                             },
                             {
                                 "t": "false"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 2,
                         "x": 940,
                         "y": 1000,
                         "wires": [
                             [
                                 "860c69c409434a60"
                             ],
                             [
                                 "bd2d29a18401d1c5"
                             ]
                         ]
                     },
                     {
                         "id": "bd2d29a18401d1c5",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Summe > Einschwelle ?",
                         "property": "EnergieManagement.Summe > EnergieManagement.Einschwelle ",
                         "propertyType": "jsonata",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1190,
                         "y": 1020,
                         "wires": [
                             [
                                 "f5b7161642107f77"
                             ]
                         ]
                     },
                     {
                         "id": "f5b7161642107f77",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Relais 1 einschalten",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "{\"relay\":0,\"on\":true}",
                                 "tot": "json"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1440,
                         "y": 1020,
                         "wires": [
                             [
                                 "ad8d7bae4667baf5"
                             ]
                         ]
                     },
                     {
                         "id": "0a64877c69c15599",
                         "type": "debug",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Shelly command Relais1",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1810,
                         "y": 980,
                         "wires": []
                     },
                     {
                         "id": "b4cd49fa76bc511c",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Check valide Ein und Ausschwelle",
                         "property": " EnergieManagement.Einschwelle > EnergieManagement.Ausschwelle",
                         "propertyType": "jsonata",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 680,
                         "y": 1020,
                         "wires": [
                             [
                                 "27eecf831db301d2",
                                 "cfef92ce1099aabc"
                             ]
                         ]
                     },
                     {
                         "id": "860c69c409434a60",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Summe > Einschwelle ?",
                         "property": "EnergieManagement.Summe > EnergieManagement.Einschwelle ",
                         "propertyType": "jsonata",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1190,
                         "y": 980,
                         "wires": [
                             [
                                 "3345c9a98a678993"
                             ]
                         ]
                     },
                     {
                         "id": "3345c9a98a678993",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Relais 2 einschalten",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "{\"relay\":1,\"on\":true}",
                                 "tot": "json"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1440,
                         "y": 980,
                         "wires": [
                             [
                                 "1066884b98e7ebf3"
                             ]
                         ]
                     },
                     {
                         "id": "1d495447e96a3a24",
                         "type": "debug",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Shelly command Relais2",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1810,
                         "y": 1100,
                         "wires": []
                     },
                     {
                         "id": "d208c8c4552eed40",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Summe < Ausschwelle ?",
                         "property": "EnergieManagement.Summe < EnergieManagement.Ausschwelle ",
                         "propertyType": "jsonata",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1190,
                         "y": 1060,
                         "wires": [
                             [
                                 "b4802b321ce23e92"
                             ]
                         ]
                     },
                     {
                         "id": "b4802b321ce23e92",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Relais 1 ausschalten",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "{\"relay\":0,\"on\":false}",
                                 "tot": "json"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1440,
                         "y": 1060,
                         "wires": [
                             [
                                 "ad8d7bae4667baf5"
                             ]
                         ]
                     },
                     {
                         "id": "cfef92ce1099aabc",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Status Relais 2",
                         "property": "payload.relays[1].ison",
                         "propertyType": "msg",
                         "rules": [
                             {
                                 "t": "false"
                             },
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 2,
                         "x": 940,
                         "y": 1080,
                         "wires": [
                             [
                                 "d208c8c4552eed40"
                             ],
                             [
                                 "68dcc9282e6f1562"
                             ]
                         ]
                     },
                     {
                         "id": "68dcc9282e6f1562",
                         "type": "switch",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Summe < Ausschwelle ?",
                         "property": "EnergieManagement.Summe < EnergieManagement.Ausschwelle ",
                         "propertyType": "jsonata",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1190,
                         "y": 1100,
                         "wires": [
                             [
                                 "4352e22b6fb056a1"
                             ]
                         ]
                     },
                     {
                         "id": "4352e22b6fb056a1",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "Relais 2 ausschalten",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "{\"relay\":1,\"on\":false}",
                                 "tot": "json"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1440,
                         "y": 1100,
                         "wires": [
                             [
                                 "1066884b98e7ebf3"
                             ]
                         ]
                     },
                     {
                         "id": "1f6db3ae891ae6f9",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "setze LED1",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload.relays[0].ison",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 330,
                         "y": 1100,
                         "wires": [
                             [
                                 "08ed4a797b81c710"
                             ]
                         ]
                     },
                     {
                         "id": "4ade18cbedf1f800",
                         "type": "debug",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "ShellyInput",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "true",
                         "targetType": "full",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 350,
                         "y": 960,
                         "wires": []
                     },
                     {
                         "id": "e19cacdcf99fdc0f",
                         "type": "change",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "setze LED2",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload.relays[0].ison",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 330,
                         "y": 1140,
                         "wires": [
                             [
                                 "0fce39dffa24add3"
                             ]
                         ]
                     },
                     {
                         "id": "08ed4a797b81c710",
                         "type": "debug",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "LED1",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 490,
                         "y": 1100,
                         "wires": []
                     },
                     {
                         "id": "0fce39dffa24add3",
                         "type": "debug",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "name": "LED2",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 490,
                         "y": 1140,
                         "wires": []
                     },
                     {
                         "id": "1066884b98e7ebf3",
                         "type": "junction",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "x": 1660,
                         "y": 1040,
                         "wires": [
                             [
                                 "1d495447e96a3a24"
                             ]
                         ]
                     },
                     {
                         "id": "ad8d7bae4667baf5",
                         "type": "junction",
                         "z": "a3ff42d9e3f31af7",
                         "g": "63c4ad536edd32b7",
                         "x": 1600,
                         "y": 1040,
                         "wires": [
                             [
                                 "0a64877c69c15599"
                             ]
                         ]
                     }
                  ]
                  

                  Hier der Import. Viel Spaß! ;)

                  Und das ohne Code - (wenn man mal von < oder > absieht. ;) )

                  Ich würde an Deiner Stelle auch mit der Inject Node - die Szenarien simulieren - das macht mehr Sinn - als den Realbetrieb abzuwarten - dafür brauchst Du auch nicht das Dashboard.

                  Du kannst einfach das Objekt verändern und dann mit Inject Now - mit dem veränderten Objekt testen:

                  db2f0a21-776d-4ad9-ad86-d118398accb6-image.png

                  Wenn Du die Debug NOdes anständig benennst - erkennst Du so auch - ob die Relays richtig geschaltet werden. In dem Beispiel wird also simuliert, wie erst Relay1 und dann Relay2 einschaltet.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  R 1 Reply Last reply
                  0
                  • mickymM mickym

                    @rudi-3 Na musst Du sehen - hier der Flow ist fertig und nun kannst Du selbst einfach über Debug Nodes schauen, wie die Logik verläuft und musst auch keine unwahrscheinlichen Fälle berücksichtigen:

                    a131fd74-28bd-4308-a254-370ca778f507-image.png

                    [
                       {
                           "id": "63c4ad536edd32b7",
                           "type": "group",
                           "z": "a3ff42d9e3f31af7",
                           "style": {
                               "stroke": "#999999",
                               "stroke-opacity": "1",
                               "fill": "none",
                               "fill-opacity": "1",
                               "label": true,
                               "label-position": "nw",
                               "color": "#a4a4a4"
                           },
                           "nodes": [
                               "f994a4e33531a8c5",
                               "8673242f12284d52",
                               "27eecf831db301d2",
                               "bd2d29a18401d1c5",
                               "f5b7161642107f77",
                               "0a64877c69c15599",
                               "b4cd49fa76bc511c",
                               "860c69c409434a60",
                               "3345c9a98a678993",
                               "1d495447e96a3a24",
                               "d208c8c4552eed40",
                               "b4802b321ce23e92",
                               "cfef92ce1099aabc",
                               "68dcc9282e6f1562",
                               "4352e22b6fb056a1",
                               "1f6db3ae891ae6f9",
                               "4ade18cbedf1f800",
                               "e19cacdcf99fdc0f",
                               "08ed4a797b81c710",
                               "0fce39dffa24add3",
                               "1066884b98e7ebf3",
                               "ad8d7bae4667baf5"
                           ],
                           "x": 14,
                           "y": 919,
                           "w": 1952,
                           "h": 262
                       },
                       {
                           "id": "f994a4e33531a8c5",
                           "type": "inject",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Shelly Input",
                           "props": [
                               {
                                   "p": "status",
                                   "v": "{\"wifi_sta\":{\"connected\":true,\"ssid\":\"Kellerfritz\",\"ip\":\"192.168.2.196\",\"rssi\":-46},\"cloud\":{\"enabled\":false,\"connected\":false},\"mqtt\":{\"connected\":false},\"time\":\"15:16\",\"serial\":1,\"has_update\":true,\"mac\":\"10521C06EE47\",\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"temperature\":56.18,\"overtemperature\":false,\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"},\"update\":{\"status\":\"pending\",\"has_update\":true,\"new_version\":\"20230503-095750/v1.13.0-g9aed950\",\"old_version\":\"20191217-074901/1047-long-id-for-shelly-devices@ab2bdce7\"},\"ram_total\":49480,\"ram_free\":37016,\"fs_size\":233681,\"fs_free\":157628,\"voltage\":235.06,\"uptime\":6684}",
                                   "vt": "json"
                               },
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "{\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"}}",
                           "payloadType": "json",
                           "x": 130,
                           "y": 1020,
                           "wires": [
                               [
                                   "8673242f12284d52",
                                   "4ade18cbedf1f800",
                                   "1f6db3ae891ae6f9",
                                   "e19cacdcf99fdc0f"
                               ]
                           ]
                       },
                       {
                           "id": "8673242f12284d52",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "EnergieManagement",
                                   "pt": "msg",
                                   "to": "EnergieManagement",
                                   "tot": "flow"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 370,
                           "y": 1020,
                           "wires": [
                               [
                                   "b4cd49fa76bc511c"
                               ]
                           ]
                       },
                       {
                           "id": "27eecf831db301d2",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Status Relais 1",
                           "property": "payload.relays[0].ison",
                           "propertyType": "msg",
                           "rules": [
                               {
                                   "t": "true"
                               },
                               {
                                   "t": "false"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 2,
                           "x": 940,
                           "y": 1000,
                           "wires": [
                               [
                                   "860c69c409434a60"
                               ],
                               [
                                   "bd2d29a18401d1c5"
                               ]
                           ]
                       },
                       {
                           "id": "bd2d29a18401d1c5",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Summe > Einschwelle ?",
                           "property": "EnergieManagement.Summe > EnergieManagement.Einschwelle ",
                           "propertyType": "jsonata",
                           "rules": [
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1190,
                           "y": 1020,
                           "wires": [
                               [
                                   "f5b7161642107f77"
                               ]
                           ]
                       },
                       {
                           "id": "f5b7161642107f77",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Relais 1 einschalten",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "{\"relay\":0,\"on\":true}",
                                   "tot": "json"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1440,
                           "y": 1020,
                           "wires": [
                               [
                                   "ad8d7bae4667baf5"
                               ]
                           ]
                       },
                       {
                           "id": "0a64877c69c15599",
                           "type": "debug",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Shelly command Relais1",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1810,
                           "y": 980,
                           "wires": []
                       },
                       {
                           "id": "b4cd49fa76bc511c",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Check valide Ein und Ausschwelle",
                           "property": " EnergieManagement.Einschwelle > EnergieManagement.Ausschwelle",
                           "propertyType": "jsonata",
                           "rules": [
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 680,
                           "y": 1020,
                           "wires": [
                               [
                                   "27eecf831db301d2",
                                   "cfef92ce1099aabc"
                               ]
                           ]
                       },
                       {
                           "id": "860c69c409434a60",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Summe > Einschwelle ?",
                           "property": "EnergieManagement.Summe > EnergieManagement.Einschwelle ",
                           "propertyType": "jsonata",
                           "rules": [
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1190,
                           "y": 980,
                           "wires": [
                               [
                                   "3345c9a98a678993"
                               ]
                           ]
                       },
                       {
                           "id": "3345c9a98a678993",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Relais 2 einschalten",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "{\"relay\":1,\"on\":true}",
                                   "tot": "json"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1440,
                           "y": 980,
                           "wires": [
                               [
                                   "1066884b98e7ebf3"
                               ]
                           ]
                       },
                       {
                           "id": "1d495447e96a3a24",
                           "type": "debug",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Shelly command Relais2",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1810,
                           "y": 1100,
                           "wires": []
                       },
                       {
                           "id": "d208c8c4552eed40",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Summe < Ausschwelle ?",
                           "property": "EnergieManagement.Summe < EnergieManagement.Ausschwelle ",
                           "propertyType": "jsonata",
                           "rules": [
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1190,
                           "y": 1060,
                           "wires": [
                               [
                                   "b4802b321ce23e92"
                               ]
                           ]
                       },
                       {
                           "id": "b4802b321ce23e92",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Relais 1 ausschalten",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "{\"relay\":0,\"on\":false}",
                                   "tot": "json"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1440,
                           "y": 1060,
                           "wires": [
                               [
                                   "ad8d7bae4667baf5"
                               ]
                           ]
                       },
                       {
                           "id": "cfef92ce1099aabc",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Status Relais 2",
                           "property": "payload.relays[1].ison",
                           "propertyType": "msg",
                           "rules": [
                               {
                                   "t": "false"
                               },
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 2,
                           "x": 940,
                           "y": 1080,
                           "wires": [
                               [
                                   "d208c8c4552eed40"
                               ],
                               [
                                   "68dcc9282e6f1562"
                               ]
                           ]
                       },
                       {
                           "id": "68dcc9282e6f1562",
                           "type": "switch",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Summe < Ausschwelle ?",
                           "property": "EnergieManagement.Summe < EnergieManagement.Ausschwelle ",
                           "propertyType": "jsonata",
                           "rules": [
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1190,
                           "y": 1100,
                           "wires": [
                               [
                                   "4352e22b6fb056a1"
                               ]
                           ]
                       },
                       {
                           "id": "4352e22b6fb056a1",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "Relais 2 ausschalten",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "{\"relay\":1,\"on\":false}",
                                   "tot": "json"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1440,
                           "y": 1100,
                           "wires": [
                               [
                                   "1066884b98e7ebf3"
                               ]
                           ]
                       },
                       {
                           "id": "1f6db3ae891ae6f9",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "setze LED1",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "payload.relays[0].ison",
                                   "tot": "msg"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 330,
                           "y": 1100,
                           "wires": [
                               [
                                   "08ed4a797b81c710"
                               ]
                           ]
                       },
                       {
                           "id": "4ade18cbedf1f800",
                           "type": "debug",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "ShellyInput",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "true",
                           "targetType": "full",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 350,
                           "y": 960,
                           "wires": []
                       },
                       {
                           "id": "e19cacdcf99fdc0f",
                           "type": "change",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "setze LED2",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "payload.relays[0].ison",
                                   "tot": "msg"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 330,
                           "y": 1140,
                           "wires": [
                               [
                                   "0fce39dffa24add3"
                               ]
                           ]
                       },
                       {
                           "id": "08ed4a797b81c710",
                           "type": "debug",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "LED1",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 490,
                           "y": 1100,
                           "wires": []
                       },
                       {
                           "id": "0fce39dffa24add3",
                           "type": "debug",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "name": "LED2",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 490,
                           "y": 1140,
                           "wires": []
                       },
                       {
                           "id": "1066884b98e7ebf3",
                           "type": "junction",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "x": 1660,
                           "y": 1040,
                           "wires": [
                               [
                                   "1d495447e96a3a24"
                               ]
                           ]
                       },
                       {
                           "id": "ad8d7bae4667baf5",
                           "type": "junction",
                           "z": "a3ff42d9e3f31af7",
                           "g": "63c4ad536edd32b7",
                           "x": 1600,
                           "y": 1040,
                           "wires": [
                               [
                                   "0a64877c69c15599"
                               ]
                           ]
                       }
                    ]
                    

                    Hier der Import. Viel Spaß! ;)

                    Und das ohne Code - (wenn man mal von < oder > absieht. ;) )

                    Ich würde an Deiner Stelle auch mit der Inject Node - die Szenarien simulieren - das macht mehr Sinn - als den Realbetrieb abzuwarten - dafür brauchst Du auch nicht das Dashboard.

                    Du kannst einfach das Objekt verändern und dann mit Inject Now - mit dem veränderten Objekt testen:

                    db2f0a21-776d-4ad9-ad86-d118398accb6-image.png

                    Wenn Du die Debug NOdes anständig benennst - erkennst Du so auch - ob die Relays richtig geschaltet werden. In dem Beispiel wird also simuliert, wie erst Relay1 und dann Relay2 einschaltet.

                    R Offline
                    R Offline
                    Rudi 3
                    wrote on last edited by
                    #37

                    @mickym Cooler Tip, das werde ich versuchen. Bisher haben bei mir viele Beispielflows mit inject-nodes funktioniert und mit den shellys dann nicht mehr. Daher habe ich hier ein Provisorium auf dem Tisch liegen..
                    Ich hatte mir zwar extra ein Node-Red Buch gekauft, aber die größte Lernkurve hatte ich heute Nachmittag, auch wenn ich noch nicht alles nachvollzogen habe. Da wird mir am Sonntag bestimmt nicht langweilig. Vielen Dank nochmals für Deine ausführlichen Erklärungen, damit kann man gut arbeiten. Vor allem sind sie auch für andere hilfesuchende eine gute Informationsquelle.
                    Übrigens ist es heute auf den Tag genau 20 Jahre her, das ich mit Forumshilfe ein größeres Bastelprojekt hinbekommen habe. Daher möchte ich mich speziell bei Dir und im Allgemeinen bei Allen bedanken, die ihr Wissen im Internet teilen.
                    Rudi

                    1 Reply Last reply
                    1
                    • R Rudi 3

                      @mickym Sorry habe zwischendurch für eventuelle Mitleser meine Gedanken zur Hysterese zusammengefasst. Stimmt, das ist die halbe Miete. In der Praxis wird allerdings folgendes passieren: Wir erreichen z.B. 1000W Überschuss. Der Heizstab schaltet ein (700W). Dann liegt der Überschuss nur noch bei 300W. Dementsprechend groß muss die Hystere sein bzw. wird unnötig Strom verschenkt. Zudem soll der Heizstab nicht unnötig oft schalten. Daher möchte ich zum Schluss eine Verzögerung einbauen, die z.B. nur alle paar Minuten ein Schaltsignal an die Relais gibt. Dabei muss man natürlich abwägen, das hier kurzzeitig teurer Netzstrom ins Warmwasser geht.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by mickym
                      #38

                      @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                      Zudem soll der Heizstab nicht unnötig oft schalten. Daher möchte ich zum Schluss eine Verzögerung einbauen, die z.B. nur alle paar Minuten ein Schaltsignal an die Relais gibt.

                      Wie gesagt von der Pollerei und festen Zeiten halte ich gar nichts - so was löst man besser mit einer Trigger Node. Ich mach das dann meist so - dass am Anfang nichts gesendet wird und wenn Deine Karenzzeit vergangen ist - erst geschaltet wird.

                      Diese Node ist so was von genial und auch wieder ohne Code.

                      9290cc4f-3712-4050-a61c-205d59fae374-image.png

                      Du achtest darauf, dass nur veränderte Nachrichten durchkommen - dass kann man mit einer filter Node machen.

                      e58edcae-78aa-4e49-94e7-4eb70b9b7ce8-image.png

                      Mit jeder neuen Nachricht (also wenn ping pong gespielt wird) - wird die Nachricht 1 Minute lang in der trigger Node zurückgehalten. Jede neue Nachricht verzögert wieder um 1 Minute. Damit ist das ganze nicht starr.

                      Erst nach Ablauf der Minute ohne eine veränderte Nachricht wird die letzte, aktuellste Nachricht durchgelassen.

                      Da die Shelly Node ja permanent sendest - kannst Du die Trigger Node auch umgekehrt konfigurieren, dann kommt das Signal sofort durch - ist aber dann für die Minute gesperrt/blockiert, um neue Nachrichten weiterzuleiten.

                      c80db4dc-afc8-4833-b13b-fe8e6e772b3f-image.png

                      Wie gesagt eine geniale Node, wie ich finde. ;)

                      fb08710b-cac4-4737-9ee2-3f82df93691a-image.png

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      660

                      Online

                      32.7k

                      Users

                      82.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe