Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Lebensmittelwarnung per Telegram verschicken

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Lebensmittelwarnung per Telegram verschicken

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jwerlsdf last edited by

      Re: [Javascript] für Warnungen von Lebensmittelwarnung

      Hallo,
      ich habe versucht den blockly-Eintrag nachzubauen, um Lebensmittelwarnungen mir per Telegram zu verschicken. Doch leider funktioniert der Versand nicht. Wenn ich manuell in VIS auf den hacken klicke, kein Problem. Der Wert wird auf false danach gesetzt. Kommt aber eine neue Warnung rein (true), dann verschickt er keine Nachricht, obwohl das im Blockly-Eintrag so drinnen steht. Könnte mir bitte jemand helfen?

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <block type="on" id=".b3ISq:00=pzgFrG$VFP" x="-138" y="-187">
          <field name="OID">javascript.0.VIS.Lebensmittelwarnung.neue_Warnung</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="|z01A=aMTfVF$Rx2Jv2!">
              <value name="IF0">
                <block type="logic_compare" id="c?(ab@FyGT99TxcFAM%}">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="on_source" id="^{Ph|ct]al+TKnIDF:uV">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="@2wjaAY6O@r%2rDd#u`|">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="telegram" id="03{{jPueElumvx**?=Ut">
                  <field name="INSTANCE">.0</field>
                  <field name="LOG"></field>
                  <field name="SILENT">FALSE</field>
                  <field name="PARSEMODE">default</field>
                  <value name="MESSAGE">
                    <shadow type="text" id="Dj}J/yJP=dd@dr,Vcg3!">
                      <field name="TEXT">text</field>
                    </shadow>
                    <block type="text_join" id="JwfDgCEKUL}1B@_v+l6G">
                      <mutation items="3"></mutation>
                      <value name="ADD0">
                        <block type="text" id="ZnrQnku9F^u1r|/.,[)u">
                          <field name="TEXT">Neue Lebensmittelwarnung</field>
                        </block>
                      </value>
                      <value name="ADD1">
                        <block type="text_newline" id="6.UsKiFx^yeu$r9e~oW/">
                          <field name="Type">\n</field>
                        </block>
                      </value>
                      <value name="ADD2">
                        <block type="get_value" id="0OW6,w!U3PN4ObcpUk@r">
                          <field name="ATTR">val</field>
                          <field name="OID">javascript.0.VIS.Lebensmittelwarnung.Nummer_0.Titel</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="control" id="Kl|]1^ue9kn|,.oP4r_{">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">javascript.0.VIS.Lebensmittelwarnung.neue_Warnung</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="d39faWWHj:`fz6bDOs#v">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      
      paul53 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @jwerlsdf last edited by

        @jwerlsdf sagte:

        Kommt aber eine neue Warnung rein (true)

        Wodurch wird der Datenpunkt "neue_Warnung" automatisch auf true gesetzt ?

        SBorg 1 Reply Last reply Reply Quote 0
        • SBorg
          SBorg Forum Testing Most Active @paul53 last edited by

          @paul53 Wenn der Zeitstempel einer Warnung sich geändert hat. Ich habe aber vergessen den Acknowledge zu setzen...

          @jwerlsdf ändere mal so um Zeile #64 im Javascript folgenden Block:

          //neue Warnung?
          on({id: DP+".Nummer_0.Datum", change: "ne"}, function (obj) {
            console.log('Neue Warnmeldung vorhanden...');
            setTimeout(function() { setState(DP+".neue_Warnung", 'true', true/*ack*/); }, 3000);
          });
          

          Dann sollte dein Blockly auch korrekt reagieren.

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

            @SBorg sagte:

            Dann sollte dein Blockly auch korrekt reagieren.

            Nein, es reagiert nicht auf den String "true". Besser so:

            //neue Warnung?
            on(DP+".Nummer_0.Datum", function () {
              console.log('Neue Warnmeldung vorhanden...');
              setTimeout(function() { setState(DP+".neue_Warnung", true, true/*ack*/); }, 3000);
            });
            

            Wozu dient die Verzögerung um 3 s ?

            @SBorg sagte in Lebensmittelwarnung per Telegram verschicken:

            Ich habe aber vergessen den Acknowledge zu setzen...

            Ist sinnvoll, aber nicht notwendig.

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

              @jwerlsdf
              Würde es nicht genügen, auf Änderung von "Nummer_0.Title" zu reagieren ?

              Blockly_temp.JPG

              1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active @paul53 last edited by

                @paul53 sagte in Lebensmittelwarnung per Telegram verschicken:

                Wozu dient die Verzögerung um 3 s ?

                War mein erstes größeres JS und das übliche Problem mittels Timeout den Programmablauf zu steuern...
                Dann kam async/await hinzu und ich habe es halt drin gelassen.

                @paul53 sagte in Lebensmittelwarnung per Telegram verschicken:

                Ist sinnvoll, aber nicht notwendig.

                Ich dachte mich zu erinnern da wäre was mit Blockly und Ack gewesen.
                Allerdings war String true schon korrekt, denn es ist tatsächlich string und nicht bool. Hätte vielleicht besser Ja/Nein oä, wählen sollen.

                @paul53 sagte in Lebensmittelwarnung per Telegram verschicken:

                Würde es nicht genügen, auf Änderung von "Nummer_0.Title" zu reagieren ?

                Die Frage ging zwar nicht an mich, aber Jein. In 99% der Fälle ja, da es sich um anders lautende Meldungen handelt. Aber es gibt auch den Sonderfall eines Updates. Dann bleibt der Titel gleich und die Uhrzeit ändert sich.

                ...und jetzt darfst du "Haue" verteilen 😉

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

                  @SBorg sagte:

                  Dann bleibt der Titel gleich und die Uhrzeit ändert sich.

                  Braucht man dann eine Telegramm-Meldung, wenn sich der Titel nicht ändert ? Falls ja, kann man auch auf "wurde aktualisiert" triggern.

                  @SBorg sagte in Lebensmittelwarnung per Telegram verschicken:

                  es ist tatsächlich string und nicht bool.

                  Dann muss das Blockly anders aussehen, denn @jwerlsdf ist offenbar der Ansicht, dass der Datenpunkt vom Typ "boolean" ist.

                  1 Reply Last reply Reply Quote 0
                  • J
                    jwerlsdf last edited by

                    @paul53 said in Lebensmittelwarnung per Telegram verschicken:

                    Re: Lebensmittelwarnung per Telegram verschicken

                    Hallo,
                    ich habe das Skript angepasst:

                    //neue Warnung?
                    on(DP+".Nummer_0.Datum", function () {
                      console.log('Neue Warnmeldung vorhanden...');
                      setTimeout(function() { setState(DP+".neue_Warnung", true, true/*ack*/); }, 3000);
                    });
                    

                    Doch das brachte keinen Erfolg.
                    Habe dann diesen blockly-Eintrag nachgebaut und damit geht es (habe einfach die Datenpunkte manuell mal abgeändert)
                    6181de6f-702f-4cb0-a91a-f56e98a4ffa8-grafik.png

                    Werde beobachten ob es so auch in Zukunft gehen wird.
                    Danke schonmal für eure Hilfe!

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    892
                    Online

                    32.0k
                    Users

                    80.6k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    493
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo