Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Diskussionsthread zu "Blockly für Dummies"

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Diskussionsthread zu "Blockly für Dummies"

Geplant Angeheftet Gesperrt Verschoben Blockly
46 Beiträge 9 Kommentatoren 5.7k Aufrufe 9 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.
  • CodierknechtC Codierknecht

    Ich glaube, so eine Mischung aus allem ist für den Anfänger verständlich.
    Also den Mittelwert der Tagestemperaturen ermitteln.

    Trigger auf die Temperatur, Mittelwert ausgeben (im Log. Da einen DP zu hinterlegen kann jeder halten wie er will) und um 00:00 Uhr Liste leeren.

    Dass das damit nicht persistent ist, ist soweit klar.
    Soll aber nur ein knackiges Beispiel ohne viel Tamtam sein.

    @paul53 Vorne anfügen macht Sinn.

    Edit
    Etwa so:
    0719cfbc-fec7-439e-86d8-36693910ebbe-image.png

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #21

    @codierknecht sagte: Trigger auf die Temperatur, Mittelwert ausgeben

    Das ist kein echter Tages-Mittelwert, da Temperaturwerte, die lange Zeit konstant bleiben, untergewichtet werden.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    CodierknechtC HomoranH 2 Antworten Letzte Antwort
    1
    • paul53P paul53

      @codierknecht sagte: Trigger auf die Temperatur, Mittelwert ausgeben

      Das ist kein echter Tages-Mittelwert, da Temperaturwerte, die lange Zeit konstant bleiben, untergewichtet werden.

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #22

      @paul53
      Guter Hinweis - ich baue das um auf CRON

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.0.17 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Cerrtified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @codierknecht sagte: Trigger auf die Temperatur, Mittelwert ausgeben

        Das ist kein echter Tages-Mittelwert, da Temperaturwerte, die lange Zeit konstant bleiben, untergewichtet werden.

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #23

        @paul53 sagte in Diskussionsthread zu "Blockly für Dummies":

        da Temperaturwerte, die lange Zeit konstant bleiben, untergewichtet werden.

        dafür hatte ich auch mal was geklöppelt, das mit Zeitdifferenzen arbeitete und dann den letzten Wert x-mal in die Liste eintrug. (x = Zeitspanne : Standardsendeintervall)

        ich weiss gar nicht ob das korrekt arbeitet.

        Screenshot_20231127-132207_Firefox.jpg

        mir hat's gereicht und für Einsteiger zu komplex

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von Codierknecht
          #24

          Ich denke, der Ursprungsthread ist so ziemlich komplett.
          Ich will den Anfänger ja nicht überfordern, denke aber, die wichtigsten Punkte angesprochen zu haben.
          Soll ja nicht die Doku ersetzen, sondern nur die häufigsten Fallstricke und deren Umgehung aufzeigen.

          Sollten der Thread eklatante Fehler enthalten oder ein wichtiger Punkt noch gänzlich unbehandelt sein: Nur zu - bitte hier melden.

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.0.17 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Cerrtified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          1 Antwort Letzte Antwort
          1
          • H-a-m-iH Offline
            H-a-m-iH Offline
            H-a-m-i
            schrieb am zuletzt editiert von
            #25

            Hallo. Ich bin gerade, bei der Suche nach der Antwort auf eine Frage, auf den Blockly für Dummies Thread gestoßen und würde die Frage einfach mal hier stellen, vielleicht wäre dieser Punkt evtl. auch für andere im Dummies Thread hilfreich.

            Und zwar geht es um den "Falls Block". Ich habe in einigen meiner Skripte, bei den Falls Blöcken, mehrere Bedingungen mit den selben Variablen Abfragen und frage mich, welche Variante in diesem Fall ressourcenschonender und auch schneller ist. Bisher habe ich es immer, soweit es geht, vermieden, Falls Blöcke in Falls Blöcke zu bauen, weil ich meine mal gelesen zu haben, dass das nicht so gut sei. Ich habe dann immer mehrere Bedingungen mit "und" oder "oder" Blöcken zusammen gebaut und manche Variable so mehrfach überprüft, was ja, nach meinem Verständnis, aber eigentlich mehr Ressourcen benötigt. Deshalb frage ich mich mittlerweile, ob es nicht doch besser ist, in so einem Fall dann doch mehrere Falls Blöcke ineinander zu setzen, da so die jeweilige Variable nur einmal abgefragt werden muss und nicht mehrfach.

            Hier mal Screenshots beider Varianten, dann ist es leichter zu verstehen, was ich meine. Als erstes, wie ich es bisher gemacht habe, hier wurden zb die Variablen Entpreller, AlexaImBett, BWM_HS mehrfach in Bedingungen gesetzt und mehrfach überprüft:

            2.JPG

            Und so habe ich den Block jetzt mal umgestellt mit mehreren Falls Blöcken ineinander:

            1.JPG

            Welche Variante ist denn jetzt tatsächlich die bessere, was den code, die Ressourcen und die Geschwindigkeit angeht? (Die Übersichtlichkeit ist eher zweitrangig)

            paul53P CodierknechtC 2 Antworten Letzte Antwort
            0
            • H-a-m-iH H-a-m-i

              Hallo. Ich bin gerade, bei der Suche nach der Antwort auf eine Frage, auf den Blockly für Dummies Thread gestoßen und würde die Frage einfach mal hier stellen, vielleicht wäre dieser Punkt evtl. auch für andere im Dummies Thread hilfreich.

              Und zwar geht es um den "Falls Block". Ich habe in einigen meiner Skripte, bei den Falls Blöcken, mehrere Bedingungen mit den selben Variablen Abfragen und frage mich, welche Variante in diesem Fall ressourcenschonender und auch schneller ist. Bisher habe ich es immer, soweit es geht, vermieden, Falls Blöcke in Falls Blöcke zu bauen, weil ich meine mal gelesen zu haben, dass das nicht so gut sei. Ich habe dann immer mehrere Bedingungen mit "und" oder "oder" Blöcken zusammen gebaut und manche Variable so mehrfach überprüft, was ja, nach meinem Verständnis, aber eigentlich mehr Ressourcen benötigt. Deshalb frage ich mich mittlerweile, ob es nicht doch besser ist, in so einem Fall dann doch mehrere Falls Blöcke ineinander zu setzen, da so die jeweilige Variable nur einmal abgefragt werden muss und nicht mehrfach.

              Hier mal Screenshots beider Varianten, dann ist es leichter zu verstehen, was ich meine. Als erstes, wie ich es bisher gemacht habe, hier wurden zb die Variablen Entpreller, AlexaImBett, BWM_HS mehrfach in Bedingungen gesetzt und mehrfach überprüft:

              2.JPG

              Und so habe ich den Block jetzt mal umgestellt mit mehreren Falls Blöcken ineinander:

              1.JPG

              Welche Variante ist denn jetzt tatsächlich die bessere, was den code, die Ressourcen und die Geschwindigkeit angeht? (Die Übersichtlichkeit ist eher zweitrangig)

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #26

              @h-a-m-i sagte: Welche Variante ist denn jetzt tatsächlich die bessere

              Wenn alle Debug-Ausgaben in den sonst-Zweigen benötigt werden, ist die zweite Variante besser. In jedem Fall ist es besser, die Entpreller-Variable nur einmal zu prüfen, was mittels Timer-Variable eleganter geht:

              Blockly_temp.JPG

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • H-a-m-iH H-a-m-i

                Hallo. Ich bin gerade, bei der Suche nach der Antwort auf eine Frage, auf den Blockly für Dummies Thread gestoßen und würde die Frage einfach mal hier stellen, vielleicht wäre dieser Punkt evtl. auch für andere im Dummies Thread hilfreich.

                Und zwar geht es um den "Falls Block". Ich habe in einigen meiner Skripte, bei den Falls Blöcken, mehrere Bedingungen mit den selben Variablen Abfragen und frage mich, welche Variante in diesem Fall ressourcenschonender und auch schneller ist. Bisher habe ich es immer, soweit es geht, vermieden, Falls Blöcke in Falls Blöcke zu bauen, weil ich meine mal gelesen zu haben, dass das nicht so gut sei. Ich habe dann immer mehrere Bedingungen mit "und" oder "oder" Blöcken zusammen gebaut und manche Variable so mehrfach überprüft, was ja, nach meinem Verständnis, aber eigentlich mehr Ressourcen benötigt. Deshalb frage ich mich mittlerweile, ob es nicht doch besser ist, in so einem Fall dann doch mehrere Falls Blöcke ineinander zu setzen, da so die jeweilige Variable nur einmal abgefragt werden muss und nicht mehrfach.

                Hier mal Screenshots beider Varianten, dann ist es leichter zu verstehen, was ich meine. Als erstes, wie ich es bisher gemacht habe, hier wurden zb die Variablen Entpreller, AlexaImBett, BWM_HS mehrfach in Bedingungen gesetzt und mehrfach überprüft:

                2.JPG

                Und so habe ich den Block jetzt mal umgestellt mit mehreren Falls Blöcken ineinander:

                1.JPG

                Welche Variante ist denn jetzt tatsächlich die bessere, was den code, die Ressourcen und die Geschwindigkeit angeht? (Die Übersichtlichkeit ist eher zweitrangig)

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von Codierknecht
                #27

                @h-a-m-i
                Ich glaube, in diesem Fall ist Lesbarkeit wichtiger als noch das letzte Quentchen Performance rauszuquetschen.

                Nimm die Variante, die Du nach einigen Wochen oder gar Monaten noch verstehst.

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.0.17 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Cerrtified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Antwort Letzte Antwort
                0
                • H-a-m-iH Offline
                  H-a-m-iH Offline
                  H-a-m-i
                  schrieb am zuletzt editiert von
                  #28

                  Ok prima, also ist es nicht schlimm, mehrere Falls Blöcke ineinander zu bauen. Solche Blöcke kommen nämlich bei mir öfter vor.

                  @codierknecht sagte in Diskussionsthread zu "Blockly für Dummies":

                  in diesem Fall ist Lesbarkeit wichtiger als noch das letzte Quentchen Performance rauszuquetschen.

                  Aber bedeutet das dann, dass die aufgeräumte, zweite Variante mehr Ressourcen/Zeit verbraucht als die erste? In diesem Fall geht es ja um das Einschalten eines Lichts per Bewegungsmelder und das soll so schnell wie möglich passieren...

                  @paul53 sagte in Diskussionsthread zu "Blockly für Dummies":

                  was mittels Timer-Variable eleganter geht:

                  Ach cool, das ist ja noch besser. Danke. Der grüne "Verzögerung timeout" Block oben gibt also immer an, ob dieser timeout gerade läuft, richtig?

                  paul53P CodierknechtC 2 Antworten Letzte Antwort
                  0
                  • H-a-m-iH H-a-m-i

                    Ok prima, also ist es nicht schlimm, mehrere Falls Blöcke ineinander zu bauen. Solche Blöcke kommen nämlich bei mir öfter vor.

                    @codierknecht sagte in Diskussionsthread zu "Blockly für Dummies":

                    in diesem Fall ist Lesbarkeit wichtiger als noch das letzte Quentchen Performance rauszuquetschen.

                    Aber bedeutet das dann, dass die aufgeräumte, zweite Variante mehr Ressourcen/Zeit verbraucht als die erste? In diesem Fall geht es ja um das Einschalten eines Lichts per Bewegungsmelder und das soll so schnell wie möglich passieren...

                    @paul53 sagte in Diskussionsthread zu "Blockly für Dummies":

                    was mittels Timer-Variable eleganter geht:

                    Ach cool, das ist ja noch besser. Danke. Der grüne "Verzögerung timeout" Block oben gibt also immer an, ob dieser timeout gerade läuft, richtig?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #29

                    @h-a-m-i sagte: Der grüne "Verzögerung timeout" Block oben gibt also immer an, ob dieser timeout gerade läuft, richtig?

                    Ja, seit Javascript-Version 7.0.5 ist es so.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • H-a-m-iH H-a-m-i

                      Ok prima, also ist es nicht schlimm, mehrere Falls Blöcke ineinander zu bauen. Solche Blöcke kommen nämlich bei mir öfter vor.

                      @codierknecht sagte in Diskussionsthread zu "Blockly für Dummies":

                      in diesem Fall ist Lesbarkeit wichtiger als noch das letzte Quentchen Performance rauszuquetschen.

                      Aber bedeutet das dann, dass die aufgeräumte, zweite Variante mehr Ressourcen/Zeit verbraucht als die erste? In diesem Fall geht es ja um das Einschalten eines Lichts per Bewegungsmelder und das soll so schnell wie möglich passieren...

                      @paul53 sagte in Diskussionsthread zu "Blockly für Dummies":

                      was mittels Timer-Variable eleganter geht:

                      Ach cool, das ist ja noch besser. Danke. Der grüne "Verzögerung timeout" Block oben gibt also immer an, ob dieser timeout gerade läuft, richtig?

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #30

                      @h-a-m-i sagte in Diskussionsthread zu "Blockly für Dummies":

                      Aber bedeutet das dann, dass die aufgeräumte, zweite Variante mehr Ressourcen/Zeit verbraucht als die erste? In diesem Fall geht es ja um das Einschalten eines Lichts per Bewegungsmelder und das soll so schnell wie möglich passieren...

                      Was die Performance angeht, reden wir von Millisekunden, die eine Variante evtl. schneller ist als eine andere.
                      Das fällt wohl kaum ins Gewicht.

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.0.17 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Cerrtified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      JoJo58J 1 Antwort Letzte Antwort
                      0
                      • H-a-m-iH Offline
                        H-a-m-iH Offline
                        H-a-m-i
                        schrieb am zuletzt editiert von
                        #31

                        Super. Vielen Dank euch

                        1 Antwort Letzte Antwort
                        0
                        • CodierknechtC Codierknecht

                          @h-a-m-i sagte in Diskussionsthread zu "Blockly für Dummies":

                          Aber bedeutet das dann, dass die aufgeräumte, zweite Variante mehr Ressourcen/Zeit verbraucht als die erste? In diesem Fall geht es ja um das Einschalten eines Lichts per Bewegungsmelder und das soll so schnell wie möglich passieren...

                          Was die Performance angeht, reden wir von Millisekunden, die eine Variante evtl. schneller ist als eine andere.
                          Das fällt wohl kaum ins Gewicht.

                          JoJo58J Offline
                          JoJo58J Offline
                          JoJo58
                          schrieb am zuletzt editiert von
                          #32

                          @codierknecht

                          Ich habe mir dein "Blockly for dummies" durchgelesen und bin echt angetan davon 👍 , ist wirklich hilfreich, vielen Dank. Ich wäre froh wenn ich einiges davon schon früher gewusst hätte.
                          Hab dann doch Fragen dazu. Ich habe sehr viele Blocklys und alle in einer Ordnerstruktur in root erstellt. Ob die Blocklys alle sinnvoll sind, bezweifele ich selber, aber egal. Ich habe bei allen Namen, egal ob Ordner oder Blocklys, leider Leerzeichen und auch Umlauten angelegt. Habe gerade zum Testen einen Ordner, darunter noch einen Ordner und da ein Blockly erstellt. Alles mit Leerzeichen und Umlauten. Die habe ich dann nachträglich umbenannt und das hat geklappt.

                          1. Frage: Ist es sinnvoll das jetzt im nachhinein bei allen Blocklys (über 300) zu machen und die alle mit Bindestrich/Unterstrich und ohne Umlaute umzubenennen?

                          2. Frage: Ich kannte den "nicht" Block nicht, habe also immer auf "Wert von Objekt ID = falsch" oder "Variable = falsch" geprüft. Lohnt es sich das nach und nach in den Blocklys zu ändern?

                          Wenn du/ihr ja sagt, habe ich eine neue Beschäftigung 😁

                          Gruß Johannes

                          Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                          Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                          Einfach ein tolles Hobby :-)

                          HomoranH 1 Antwort Letzte Antwort
                          0
                          • JoJo58J JoJo58

                            @codierknecht

                            Ich habe mir dein "Blockly for dummies" durchgelesen und bin echt angetan davon 👍 , ist wirklich hilfreich, vielen Dank. Ich wäre froh wenn ich einiges davon schon früher gewusst hätte.
                            Hab dann doch Fragen dazu. Ich habe sehr viele Blocklys und alle in einer Ordnerstruktur in root erstellt. Ob die Blocklys alle sinnvoll sind, bezweifele ich selber, aber egal. Ich habe bei allen Namen, egal ob Ordner oder Blocklys, leider Leerzeichen und auch Umlauten angelegt. Habe gerade zum Testen einen Ordner, darunter noch einen Ordner und da ein Blockly erstellt. Alles mit Leerzeichen und Umlauten. Die habe ich dann nachträglich umbenannt und das hat geklappt.

                            1. Frage: Ist es sinnvoll das jetzt im nachhinein bei allen Blocklys (über 300) zu machen und die alle mit Bindestrich/Unterstrich und ohne Umlaute umzubenennen?

                            2. Frage: Ich kannte den "nicht" Block nicht, habe also immer auf "Wert von Objekt ID = falsch" oder "Variable = falsch" geprüft. Lohnt es sich das nach und nach in den Blocklys zu ändern?

                            Wenn du/ihr ja sagt, habe ich eine neue Beschäftigung 😁

                            Gruß Johannes

                            HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #33

                            @jojo58
                            zu 2)
                            du hast leider kein Beispiel gezeigt.
                            Interessant wird es wenn du mehrfach den Wert des Triggerdatenpunkts nochmals separat über "Wert von..." holst.
                            Dann lohnt es sich auf jeden Fall statt dessen den Block WERT aus dem Beteich Trigger zu nehmen und nicht Wert daraus zu machen.

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            JoJo58J 1 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @jojo58
                              zu 2)
                              du hast leider kein Beispiel gezeigt.
                              Interessant wird es wenn du mehrfach den Wert des Triggerdatenpunkts nochmals separat über "Wert von..." holst.
                              Dann lohnt es sich auf jeden Fall statt dessen den Block WERT aus dem Beteich Trigger zu nehmen und nicht Wert daraus zu machen.

                              JoJo58J Offline
                              JoJo58J Offline
                              JoJo58
                              schrieb am zuletzt editiert von
                              #34

                              @homoran
                              Mit dem "WERT" aus Trigger das kenne ich, in dem Beispiel hier, triggere ich allerdings auf 2 Bewegungsmelder. Die Werte setze ich in die Variablen "Bewegung_Kaffeemaschine" und "Bewegung_Spuele" und arbeite damit.
                              Im Screenshot (etwa ein viertel des Blocklys) habe ich schon 7 (von insgesamt 16) mal die Prüfung auf "falsch" und das meinte ich. Und ich sehe gerade das ich den "currentState" auch mehrfach verwende, hätte ich auch in eine Variable setzen sollen.

                              Blockly auf falsch.jpg

                              Die Frage ist halt, lohnt es sich, oder ist es sinnvoll, die in diesem Blockly 16 mal vorhandene Prüfung auf "falsch" zu ändern und den "nicht" Block zu nehmen? Bei neuen werde ich es definitiv machen.

                              Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                              Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                              Einfach ein tolles Hobby :-)

                              HomoranH 1 Antwort Letzte Antwort
                              0
                              • JoJo58J JoJo58

                                @homoran
                                Mit dem "WERT" aus Trigger das kenne ich, in dem Beispiel hier, triggere ich allerdings auf 2 Bewegungsmelder. Die Werte setze ich in die Variablen "Bewegung_Kaffeemaschine" und "Bewegung_Spuele" und arbeite damit.
                                Im Screenshot (etwa ein viertel des Blocklys) habe ich schon 7 (von insgesamt 16) mal die Prüfung auf "falsch" und das meinte ich. Und ich sehe gerade das ich den "currentState" auch mehrfach verwende, hätte ich auch in eine Variable setzen sollen.

                                Blockly auf falsch.jpg

                                Die Frage ist halt, lohnt es sich, oder ist es sinnvoll, die in diesem Blockly 16 mal vorhandene Prüfung auf "falsch" zu ändern und den "nicht" Block zu nehmen? Bei neuen werde ich es definitiv machen.

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #35

                                @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                die in diesem Blockly 16 mal vorhandene Prüfung auf "falsch" zu ändern und den "nicht" Block zu nehmen?

                                ich würde mir dafürdie Arbeit nicht machen, zumal wenn du dir vornimmst

                                @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                Bei neuen werde ich es definitiv machen.

                                Aber

                                @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                den "currentState" auch mehrfach verwende, hätte ich auch in eine Variable setzen sollen.

                                spart mehr Ressourcen und hat den Vorteil, dass immer der selbe Wert vorliegt, wenn die Variable direkt zu Beginn gefüllt wird

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                JoJo58J 1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                  die in diesem Blockly 16 mal vorhandene Prüfung auf "falsch" zu ändern und den "nicht" Block zu nehmen?

                                  ich würde mir dafürdie Arbeit nicht machen, zumal wenn du dir vornimmst

                                  @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                  Bei neuen werde ich es definitiv machen.

                                  Aber

                                  @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                  den "currentState" auch mehrfach verwende, hätte ich auch in eine Variable setzen sollen.

                                  spart mehr Ressourcen und hat den Vorteil, dass immer der selbe Wert vorliegt, wenn die Variable direkt zu Beginn gefüllt wird

                                  JoJo58J Offline
                                  JoJo58J Offline
                                  JoJo58
                                  schrieb am zuletzt editiert von
                                  #36

                                  @homoran sagte in Diskussionsthread zu "Blockly für Dummies":

                                  spart mehr Ressourcen und hat den Vorteil, dass immer der selbe Wert vorliegt, wenn die Variable direkt zu Beginn gefüllt wird

                                  Wusste ich nicht und werde ich anpassen. Und wenn ich einmal dran bin, dann ändere ich die Prüfungen auf falsch auch. Zumindest bei größeren Blocklys.

                                  Und was ist mit der Frage zu den Namen der Scripte? Die sollte ich ändern?

                                  Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                                  Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                                  Einfach ein tolles Hobby :-)

                                  HomoranH 1 Antwort Letzte Antwort
                                  0
                                  • JoJo58J JoJo58

                                    @homoran sagte in Diskussionsthread zu "Blockly für Dummies":

                                    spart mehr Ressourcen und hat den Vorteil, dass immer der selbe Wert vorliegt, wenn die Variable direkt zu Beginn gefüllt wird

                                    Wusste ich nicht und werde ich anpassen. Und wenn ich einmal dran bin, dann ändere ich die Prüfungen auf falsch auch. Zumindest bei größeren Blocklys.

                                    Und was ist mit der Frage zu den Namen der Scripte? Die sollte ich ändern?

                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von
                                    #37

                                    @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                    Frage zu den Namen der Scripte? Die sollte ich ändern?

                                    hmm, auch da bin ich mir nicht wirklich sicher. Ist ja nicht unerheblicher Aufwand.
                                    Bei neuen drauf achten, aber ändern IMHO nicht zwingend nötig.

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    JoJo58J 1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                      Frage zu den Namen der Scripte? Die sollte ich ändern?

                                      hmm, auch da bin ich mir nicht wirklich sicher. Ist ja nicht unerheblicher Aufwand.
                                      Bei neuen drauf achten, aber ändern IMHO nicht zwingend nötig.

                                      JoJo58J Offline
                                      JoJo58J Offline
                                      JoJo58
                                      schrieb am zuletzt editiert von
                                      #38

                                      @homoran

                                      Okay, dann weiß ich Bescheid. Werde es einfach nach und nach mal anpassen und bei neuen Blocklys direkt darauf achten. Danke für deine Hilfe.

                                      PS: Mit dem prüfen auf falsch, das ist lesbarer, mit dem "nicht" Block, da muss ich mehr aufpassen. Ist bestimmt auch eine Gewohnheitssache. 😉

                                      Johannes

                                      Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                                      Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                                      Einfach ein tolles Hobby :-)

                                      CodierknechtC 1 Antwort Letzte Antwort
                                      0
                                      • JoJo58J JoJo58

                                        @homoran

                                        Okay, dann weiß ich Bescheid. Werde es einfach nach und nach mal anpassen und bei neuen Blocklys direkt darauf achten. Danke für deine Hilfe.

                                        PS: Mit dem prüfen auf falsch, das ist lesbarer, mit dem "nicht" Block, da muss ich mehr aufpassen. Ist bestimmt auch eine Gewohnheitssache. 😉

                                        Johannes

                                        CodierknechtC Online
                                        CodierknechtC Online
                                        Codierknecht
                                        Developer Most Active
                                        schrieb am zuletzt editiert von Codierknecht
                                        #39

                                        @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                        Mit dem prüfen auf falsch, das ist lesbarer, mit dem "nicht" Block, da muss ich mehr aufpassen. Ist bestimmt auch eine Gewohnheitssache

                                        So ist es.
                                        Man muss sich nur mal vergegenwärtigen, was da eigentlich passiert.
                                        Eine Prüfung mit "Falls" wird ja intern als "if" abgebildet. Und so ein "if" prüft, ob der übergebene Ausdruck als Ergebnis ein "true" oder ein "false" zurückliefert.

                                        if (value > 42)
                                        

                                        liefert true wenn der Wert in value größer als 42 ist und falseim anderen Fall.
                                        Bei solch einer Prüfung auf z.B. Zahlenwerte ist das ja noch völlig klar.
                                        Was aber, wenn man eine bool'sche Variable prüft, die selbst nur true oder false sein kann?

                                        if (istWochenende == true)
                                        

                                        Nehmen wir mal an, die Variable "istWochenende" enthält gerade den Wert true.
                                        Dann würde beim Ablauf des Scripts ja eigentlich folgende Prüfung erfolgen:

                                        if (true == true)
                                        

                                        Hier sieht man eigentlich schon, dass eine solche Formulierung ziemlicher Quatsch ist.
                                        Der Ausdruck liefert als Ganzes true. Das steht aber ja bereits in der Variablen drin. Man kann also genau so gut schreiben:

                                        if (istWochenende)
                                        

                                        Das liest sich dann schon wesentlich besser. Ist für meine Begriffe auch wesentlich intuitiver.

                                        Jetzt ist es eigentlich nur noch reine Gewöhnungssache, das auch bei "Falsch" so zu verwenden.
                                        Das sieht bei Blockly leider etwas umständlich aus. In JavaScript (und allen anderen C-artigen Sprachen) sieht das als reiner Code wesentlich einfacher aus:

                                        if (value)  // liefert "true", wenn value = true
                                        if (!value) // liefert "true", wenn value = false (negiert)
                                        

                                        Programmierer sind halt faul - sonst wären sie nicht Programmierer geworden.
                                        Darum verwenden sie deutlich lieber die kürzere Schreibweise.

                                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                        Proxmox 9.0.17 LXC|8 GB|Core i7-6700
                                        HmIP|ZigBee|Tasmota|Unifi
                                        Zabbix Cerrtified Specialist
                                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                        paul53P 1 Antwort Letzte Antwort
                                        2
                                        • CodierknechtC Codierknecht

                                          @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

                                          Mit dem prüfen auf falsch, das ist lesbarer, mit dem "nicht" Block, da muss ich mehr aufpassen. Ist bestimmt auch eine Gewohnheitssache

                                          So ist es.
                                          Man muss sich nur mal vergegenwärtigen, was da eigentlich passiert.
                                          Eine Prüfung mit "Falls" wird ja intern als "if" abgebildet. Und so ein "if" prüft, ob der übergebene Ausdruck als Ergebnis ein "true" oder ein "false" zurückliefert.

                                          if (value > 42)
                                          

                                          liefert true wenn der Wert in value größer als 42 ist und falseim anderen Fall.
                                          Bei solch einer Prüfung auf z.B. Zahlenwerte ist das ja noch völlig klar.
                                          Was aber, wenn man eine bool'sche Variable prüft, die selbst nur true oder false sein kann?

                                          if (istWochenende == true)
                                          

                                          Nehmen wir mal an, die Variable "istWochenende" enthält gerade den Wert true.
                                          Dann würde beim Ablauf des Scripts ja eigentlich folgende Prüfung erfolgen:

                                          if (true == true)
                                          

                                          Hier sieht man eigentlich schon, dass eine solche Formulierung ziemlicher Quatsch ist.
                                          Der Ausdruck liefert als Ganzes true. Das steht aber ja bereits in der Variablen drin. Man kann also genau so gut schreiben:

                                          if (istWochenende)
                                          

                                          Das liest sich dann schon wesentlich besser. Ist für meine Begriffe auch wesentlich intuitiver.

                                          Jetzt ist es eigentlich nur noch reine Gewöhnungssache, das auch bei "Falsch" so zu verwenden.
                                          Das sieht bei Blockly leider etwas umständlich aus. In JavaScript (und allen anderen C-artigen Sprachen) sieht das als reiner Code wesentlich einfacher aus:

                                          if (value)  // liefert "true", wenn value = true
                                          if (!value) // liefert "true", wenn value = false (negiert)
                                          

                                          Programmierer sind halt faul - sonst wären sie nicht Programmierer geworden.
                                          Darum verwenden sie deutlich lieber die kürzere Schreibweise.

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von paul53
                                          #40

                                          @codierknecht sagte: if !(value)

                                          if (!value) // liefert true, wenn value = false (negiert)
                                          

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          CodierknechtC 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

                                          359

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe