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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Triggern DP ohne Wert nicht möglich (true/leer)-stiebel-isg

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    344

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Triggern DP ohne Wert nicht möglich (true/leer)-stiebel-isg

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
vis
119 Beiträge 16 Kommentatoren 11.0k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AlCalzoneA AlCalzone

    Das Problem ist, dass 3 verschiedene Trigger den gleichen Datenpunkt nutzen. Wird jetzt z.B. erst HEIZEN wahr, dann KÜHLEN falsch, dann wird in den Datenpunkt erst ganz kurz "Heizen" geschrieben, dann " ".

    Du musst alles in einen Trigger verpacken. Hier nur Pseudocode, da kein Blockly zur Hand:

    Trigger auf HEIZEN, KÜHLEN und WARMWASSER:
      Falls HEIZEN ist wahr, dann setze STATUS auf "Heizen"
      Sonst falls KÜHLEN ist wahr, dann setze STATUS auf "Kühlen"
      Sonst falls WARMWASSER ist wahr, dann setze STATUS auf "Warmwasser"
      Sonst setze STATUS auf ""
    

    So ist sichergestellt, dass immer nur einer der Stati gültig ist.

    TH GT Offline
    TH GT Offline
    TH G
    schrieb am zuletzt editiert von
    #19

    @AlCalzone

    Perfekt das wars, Danke

    1 Antwort Letzte Antwort
    0
    • AlCalzoneA AlCalzone

      Das Problem ist, dass 3 verschiedene Trigger den gleichen Datenpunkt nutzen. Wird jetzt z.B. erst HEIZEN wahr, dann KÜHLEN falsch, dann wird in den Datenpunkt erst ganz kurz "Heizen" geschrieben, dann " ".

      Du musst alles in einen Trigger verpacken. Hier nur Pseudocode, da kein Blockly zur Hand:

      Trigger auf HEIZEN, KÜHLEN und WARMWASSER:
        Falls HEIZEN ist wahr, dann setze STATUS auf "Heizen"
        Sonst falls KÜHLEN ist wahr, dann setze STATUS auf "Kühlen"
        Sonst falls WARMWASSER ist wahr, dann setze STATUS auf "Warmwasser"
        Sonst setze STATUS auf ""
      

      So ist sichergestellt, dass immer nur einer der Stati gültig ist.

      TH GT Offline
      TH GT Offline
      TH G
      schrieb am zuletzt editiert von TH G
      #20

      @AlCalzone

      Leider funktioniert es auch nicht richtig. Es wird zwar sauber bei Kühlung in den Datenpunkt "Kühlen" reingeschrieben aber wenn das Kühlen vorbei ist wird nicht der andere Wert "nicht aktiv" reingeschrieben und es bleibt "Kühlen" im DP stehen.

      Bildschirmfoto 2020-06-25 um 16.07.32.png

      AlCalzoneA 1 Antwort Letzte Antwort
      0
      • OstfrieseUnterwegsO Offline
        OstfrieseUnterwegsO Offline
        OstfrieseUnterwegs
        schrieb am zuletzt editiert von
        #21

        Die DP, auf die Du triggerst werden ja nicht alle exakt gleichzeitig gesetzt. Je nachem, welcher zuletzt im Adapter ankommt und vom Adapter gesetzt wird, der gewinnt.
        Ich würde mal eine kleine Pause einbauen (mit Timeout Baustein) und damit sozusagen auf einen stabilen Zustand warten. Vlt 2 Sekunden oder so. Wie genau muss ein Timeout-Spezialist sagen :-)

        TH GT 1 Antwort Letzte Antwort
        0
        • OstfrieseUnterwegsO OstfrieseUnterwegs

          Die DP, auf die Du triggerst werden ja nicht alle exakt gleichzeitig gesetzt. Je nachem, welcher zuletzt im Adapter ankommt und vom Adapter gesetzt wird, der gewinnt.
          Ich würde mal eine kleine Pause einbauen (mit Timeout Baustein) und damit sozusagen auf einen stabilen Zustand warten. Vlt 2 Sekunden oder so. Wie genau muss ein Timeout-Spezialist sagen :-)

          TH GT Offline
          TH GT Offline
          TH G
          schrieb am zuletzt editiert von
          #22

          @OstfrieseUnterwegs

          Es ist doch egal wann was getriggert wird.

          Wenn die Anlage Kühlt steht im DP des Adapters "True" und bei den anderen steht nichts. Also wird der Text "Kühlen" in meinen DP fürs VIS reingeschrieben.

          Wenn Kühlen beendet ist steht in keinem der DP etwas, also müsste dann in meinem DP fürs VIS "nicht aktiv" reingeschrieben werden.

          Bei Heizen und Warmwasser läuft es gleich ab aber er macht es nicht.

          1 Antwort Letzte Antwort
          0
          • Ralla66R Offline
            Ralla66R Offline
            Ralla66
            Most Active
            schrieb am zuletzt editiert von Ralla66
            #23

            @TH-G

            Frage doch false ab.
            Wenn kühlen + heizen + WW ist false aktuallisiere DP mit nicht aktiv.

            Nichts in den 3 Datenpunkten auch nicht gut da -> nichts <- nicht ausgewertet werden kann.
            Schreibe da false rein wenn nicht wahr.

            kühlen.jpg

            1 Antwort Letzte Antwort
            0
            • TH GT TH G

              @AlCalzone

              Leider funktioniert es auch nicht richtig. Es wird zwar sauber bei Kühlung in den Datenpunkt "Kühlen" reingeschrieben aber wenn das Kühlen vorbei ist wird nicht der andere Wert "nicht aktiv" reingeschrieben und es bleibt "Kühlen" im DP stehen.

              Bildschirmfoto 2020-06-25 um 16.07.32.png

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #24

              @TH-G sagte in VIS nervt aber warum?:

              Es wird zwar sauber bei Kühlung in den Datenpunkt "Kühlen" reingeschrieben aber wenn das Kühlen vorbei ist wird nicht der andere Wert "nicht aktiv" reingeschrieben

              Logge doch mal die Änderungen der Datenpunkte. Scheint mir als würden die anderen nicht aktiv werden, wenn Kühlen vorbei ist.
              Und sollten sie es überhaupt oder hast du ne Hysterese?

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              TH GT 1 Antwort Letzte Antwort
              0
              • AlCalzoneA AlCalzone

                @TH-G sagte in VIS nervt aber warum?:

                Es wird zwar sauber bei Kühlung in den Datenpunkt "Kühlen" reingeschrieben aber wenn das Kühlen vorbei ist wird nicht der andere Wert "nicht aktiv" reingeschrieben

                Logge doch mal die Änderungen der Datenpunkte. Scheint mir als würden die anderen nicht aktiv werden, wenn Kühlen vorbei ist.
                Und sollten sie es überhaupt oder hast du ne Hysterese?

                TH GT Offline
                TH GT Offline
                TH G
                schrieb am zuletzt editiert von
                #25

                @AlCalzone @Ralla66

                Also eigentlich funktioniert es und der aktuelle Status wird richtig in meinen DP geschrieben.

                Was nicht geht ist, wenn alles vorbei ist und es keinen Wert "True" mehr in den drei DP des Adapters gibt, wird nicht die letzte Bedingung (mache) ausgeführt, den Text "nicht aktiv" in meinen DP reinzuschreiben.

                AlCalzoneA 1 Antwort Letzte Antwort
                0
                • OstfrieseUnterwegsO Offline
                  OstfrieseUnterwegsO Offline
                  OstfrieseUnterwegs
                  schrieb am zuletzt editiert von
                  #26

                  Verschiebe doch deine 'sonst' Anweisung vor den ganzen Falls-Block. Dann setzt du auf jeden Fall erstmal auf 'nicht aktiv' und danach werden deine Wenns abgearbeitet. Wenn keines zutrifft, bleibt er eben auf 'nicht aktiv'. Das erklärt zwar nicht, warum dein Script nicht macht, was man erwarten würde, könnte aber eine Lösung sein.

                  1 Antwort Letzte Antwort
                  0
                  • TH GT TH G

                    @AlCalzone @Ralla66

                    Also eigentlich funktioniert es und der aktuelle Status wird richtig in meinen DP geschrieben.

                    Was nicht geht ist, wenn alles vorbei ist und es keinen Wert "True" mehr in den drei DP des Adapters gibt, wird nicht die letzte Bedingung (mache) ausgeführt, den Text "nicht aktiv" in meinen DP reinzuschreiben.

                    AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #27

                    @TH-G @OstfrieseUnterwegs Ich vermute eher dass der Trigger gar nicht erst ausgelöst wird. Oder wir rennen hier in das Problem, dass die erneuten Abfragen im Trigger einen alten Wert zurückgeben.
                    Von daher wäre Logging mal gut...

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    TH GT 1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA AlCalzone

                      @TH-G @OstfrieseUnterwegs Ich vermute eher dass der Trigger gar nicht erst ausgelöst wird. Oder wir rennen hier in das Problem, dass die erneuten Abfragen im Trigger einen alten Wert zurückgeben.
                      Von daher wäre Logging mal gut...

                      TH GT Offline
                      TH GT Offline
                      TH G
                      schrieb am zuletzt editiert von TH G
                      #28

                      @AlCalzone

                      Es steht leider nichts im Log.

                      Ich habe weiter verschiedenen Versionen mit Blockly getestet es geht einfach nicht. Auch den Vorschlag von @OstfrieseUnterwegs bringt leider nichts.

                      Es sieht so aus, als wenn es keinen Trigger gibt weil die Felder vom Adapter leer sind.

                      AlCalzoneA 1 Antwort Letzte Antwort
                      0
                      • TH GT TH G

                        @AlCalzone

                        Es steht leider nichts im Log.

                        Ich habe weiter verschiedenen Versionen mit Blockly getestet es geht einfach nicht. Auch den Vorschlag von @OstfrieseUnterwegs bringt leider nichts.

                        Es sieht so aus, als wenn es keinen Trigger gibt weil die Felder vom Adapter leer sind.

                        AlCalzoneA Offline
                        AlCalzoneA Offline
                        AlCalzone
                        Developer
                        schrieb am zuletzt editiert von
                        #29

                        @TH-G sagte in VIS nervt aber warum?:

                        weil die Felder vom Adapter leer sind.

                        Vielleicht kannste die mal mit dem History-Adapter aufzeichnen, um nachzuvollziehen, was in welcher Reihenfolge passiert.

                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                        1 Antwort Letzte Antwort
                        0
                        • Ralla66R Offline
                          Ralla66R Offline
                          Ralla66
                          Most Active
                          schrieb am zuletzt editiert von Ralla66
                          #30

                          @TH-G sagte in VIS nervt aber warum?:

                          Es sieht so aus, als wenn es keinen Trigger gibt weil die Felder vom Adapter leer sind.

                          Dann fülle diese wie oben beschrieben mit false.
                          Trigger auf -> wurde aktuallisiert -<.

                          Auf was soll denn -> sonst <- reagieren , auf -> Nichts -< im DP geht nicht.
                          Letzt endlich findet ja kein Vergleich statt.
                          Kann das Programm gar nicht.
                          Deklarieren und Vorbesetzen das A und O.

                          AlCalzoneA 1 Antwort Letzte Antwort
                          0
                          • Ralla66R Ralla66

                            @TH-G sagte in VIS nervt aber warum?:

                            Es sieht so aus, als wenn es keinen Trigger gibt weil die Felder vom Adapter leer sind.

                            Dann fülle diese wie oben beschrieben mit false.
                            Trigger auf -> wurde aktuallisiert -<.

                            Auf was soll denn -> sonst <- reagieren , auf -> Nichts -< im DP geht nicht.
                            Letzt endlich findet ja kein Vergleich statt.
                            Kann das Programm gar nicht.
                            Deklarieren und Vorbesetzen das A und O.

                            AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von
                            #31

                            @Ralla66 das ist unsinn. Wenn keiner der drei datenpunkte true ist, dann trifft der sonst-fall zu.

                            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                            1 Antwort Letzte Antwort
                            0
                            • Ralla66R Offline
                              Ralla66R Offline
                              Ralla66
                              Most Active
                              schrieb am zuletzt editiert von Ralla66
                              #32

                              @AlCalzone

                              Unsinn ist falsch,
                              Richtig ist :
                              Wenn keiner der drei datenpunkte true ist, dann trifft der sonst-fall zu

                              Der sonst Fall:
                              Ab in die Routine, wenn nix da ist kannste nix vergleichen oder sonst was.
                              Dachte immer bis jetzt Routinen sind Logisch aufgebaut.

                              Prog mal NIX, dann weißte wie groß das wird.

                              1 Antwort Letzte Antwort
                              0
                              • TH GT Offline
                                TH GT Offline
                                TH G
                                schrieb am zuletzt editiert von TH G
                                #33

                                @AlCalzone @Ralla66

                                Also es funktioniert tadellos wenn ich als Trigger einen Zeitintervall nehme. Allerdings müllen mit die Warnungen den Log voll und das möchte ich nicht.

                                Bildschirmfoto 2020-06-27 um 10.08.58.png

                                Für mich ist es nun eindeutig.

                                Es kann nicht getriggert werden, wenn der Trigger DP nach einem Wert keinen Wert mehr hat.

                                Die Frage ist jetzt nur, ist das ein iobroker oder Adapter Fehler, denn so sollte das Verhalten nicht sein.

                                AlCalzoneA 1 Antwort Letzte Antwort
                                0
                                • Ralla66R Offline
                                  Ralla66R Offline
                                  Ralla66
                                  Most Active
                                  schrieb am zuletzt editiert von Ralla66
                                  #34

                                  @TH-G
                                  Deklarieren und Vorbesetzen das A und O.
                                  5 - nix = 2 geht das ?
                                  Das geht wiederum 5 - x = 2

                                  TH GT 1 Antwort Letzte Antwort
                                  0
                                  • Ralla66R Ralla66

                                    @TH-G
                                    Deklarieren und Vorbesetzen das A und O.
                                    5 - nix = 2 geht das ?
                                    Das geht wiederum 5 - x = 2

                                    TH GT Offline
                                    TH GT Offline
                                    TH G
                                    schrieb am zuletzt editiert von
                                    #35

                                    @Ralla66

                                    Ich bin der Meinung, wenn eine leeres Feld nicht als Trigger dienen kann und "leer" ist in meinen Augen auch ein Zustand, dann sollte das über den Adapter abgefangen werden oder mit einem Zustand versehen werden.

                                    AlCalzoneA 1 Antwort Letzte Antwort
                                    0
                                    • TH GT TH G

                                      @Ralla66

                                      Ich bin der Meinung, wenn eine leeres Feld nicht als Trigger dienen kann und "leer" ist in meinen Augen auch ein Zustand, dann sollte das über den Adapter abgefangen werden oder mit einem Zustand versehen werden.

                                      AlCalzoneA Offline
                                      AlCalzoneA Offline
                                      AlCalzone
                                      Developer
                                      schrieb am zuletzt editiert von AlCalzone
                                      #36

                                      @TH-G Ein leeres Feld (Wert null) kann definitiv als Trigger dienen.

                                      createState("testwert", () => {
                                      
                                          on("testwert", obj => {
                                              log(obj.state.val);
                                          });
                                      
                                          setTimeout(() => {
                                              setState("testwert", true);
                                          }, 1000);
                                      
                                          setTimeout(() => {
                                              setState("testwert", null);
                                          }, 2000);
                                      
                                          setTimeout(() => {
                                              setState("testwert", true);
                                          }, 3000);
                                      
                                      });
                                      

                                      Log-Ausgabe:

                                      javascript.0	2020-06-27 11:43:12.329	info	(1052) script.js.Testtest: true
                                      javascript.0	2020-06-27 11:43:11.329	info	(1052) script.js.Testtest: null
                                      javascript.0	2020-06-27 11:43:10.333	info	(1052) script.js.Testtest: true
                                      javascript.0	2020-06-27 11:43:09.237	info	(1052) script.js.Testtest: registered 0 subscriptions and 0 schedules
                                      javascript.0	2020-06-27 11:43:09.200	info	(1052) Start javascript script.js.Testtest
                                      

                                      @Ralla66 ich weiß gar nicht warum du überhaupt diskutierst. Vergleiche mit "NIX" funktionieren einwandfrei. null ist schließlich auch nur ein bestimmter Wert:

                                      Welcome to Node.js v12.16.3.
                                      Type ".help" for more information.
                                      > null === true
                                      false
                                      

                                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                      1 Antwort Letzte Antwort
                                      0
                                      • TH GT TH G

                                        @AlCalzone @Ralla66

                                        Also es funktioniert tadellos wenn ich als Trigger einen Zeitintervall nehme. Allerdings müllen mit die Warnungen den Log voll und das möchte ich nicht.

                                        Bildschirmfoto 2020-06-27 um 10.08.58.png

                                        Für mich ist es nun eindeutig.

                                        Es kann nicht getriggert werden, wenn der Trigger DP nach einem Wert keinen Wert mehr hat.

                                        Die Frage ist jetzt nur, ist das ein iobroker oder Adapter Fehler, denn so sollte das Verhalten nicht sein.

                                        AlCalzoneA Offline
                                        AlCalzoneA Offline
                                        AlCalzone
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #37

                                        @TH-G Was sind denn die ganzen Warnungen in deinem Log? Löscht der Adapter die Objekte etwa komplett und nicht nur die Werte? Wechsle mal auf das Log-Tab von ioBroker, da sieht man mehr.

                                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                        TH GT 1 Antwort Letzte Antwort
                                        0
                                        • AlCalzoneA AlCalzone

                                          @TH-G Was sind denn die ganzen Warnungen in deinem Log? Löscht der Adapter die Objekte etwa komplett und nicht nur die Werte? Wechsle mal auf das Log-Tab von ioBroker, da sieht man mehr.

                                          TH GT Offline
                                          TH GT Offline
                                          TH G
                                          schrieb am zuletzt editiert von
                                          #38

                                          @AlCalzone

                                          Meinst du mit Null auch ein leeres Feld? Denn Null ist ja ein Wert aber ein leeres Feld?

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          944

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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