Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Script Überwachung Temperatur und Meldung an Telegram

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Script Überwachung Temperatur und Meldung an Telegram

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators last edited by

      @Kueppert:

      Hi Dutch,

      danke dir schon mal für den Zeitplan. Direkt verbaut:

      Skript_Temperatur2.png

      Ich möchte gern:

      "Mochestest du einfach alle 15 minuten kontrollieren ob die temperatur <18 ist und dan eine meldung geben"

      Ich möchte nicht:

      alle 15 Minuten wieder eine Warnung erhalten, dass die Temperatur immer noch unter 18 Grad ist. Eine Meldung genügt mir. `

      Ok verstehe, dan ist der ansatz aber leider doch ein bisschen falsch sorry dafuer :). Auch hsat du gerade wiederum einen trigger in einen trigger verbaut das wird nicht gehen !

      Ich empfehle dir:

      • Nur auf temperatur aenderung zu triggern (und halt nu die meldung fal <18) das hast du ja schon

      • damit die meldung nur einmal gegeben wird musst du doch eine object erstellen/mit variable arbeiten sonst weis das script nie ob es bereits eine meldung geschikt hat !

      @Kueppert:

      Werde wenn du eine Lösung für mich hast 😉 dann noch eine Meldung verbauen, dass die Temperatur wieder über 18 Grad ist als Entwarnung sozusagen (bitte nicht die Lösung hierfür verraten. Möchte das selbst erst mal probieren).

      VG Thorsten `

      Ich verrate nichst aber gib dir nen hint "sonst falls", hoffe das bringt dich in die richtige richtung 🙂

      1 Reply Last reply Reply Quote 0
      • K
        Kueppert last edited by

        Hi Dutch,

        hab mir deinen Tip direkt einmal angesehen und etwas gefummelt und umgesetzt wie folgt:

        2700_2018-01-01_21_50_56-iobroker.admin.png

        1. Frage:

        Wird jetzt eine Message an Telegram immer nur einmal dann versendet, wenn Temperatur unter oder Temperatur über 18 Grad?

        2. Frage:

        Gibt es nicht in Blockly die Mögichkeit, genau dieses mein Blockly alle 15 Minuten mal durchzuspielen und den Trigger zu prüfen? Und in der Zwischenzeit das Script "auszuschalten"? Denke, das wäre auch Ressourcenschonender…

        PS: Wenn ich dumme Fragen stelle, sag das oder sag mir, das steht schon hier irgendwo im Forum. Ich hab bei den ersten beiden uchen leider nix gefunden;o)

        Danke und Grüße, Thorsten

        1 Reply Last reply Reply Quote 0
        • Dutchman
          Dutchman Developer Most Active Administrators last edited by

          @Kueppert:

          Hi Dutch,

          hab mir deinen Tip direkt einmal angesehen und etwas gefummelt und umgesetzt wie folgt: `

          sehr gut das mit den triggern hast du jetzt umgesetzt und nicht mehr doppelt und auch das mit dem falls/sonst direkt verstanden :mrgreen: !

          @Kueppert:

          1. Frage:

          Wird jetzt eine Message an Telegram immer nur einmal dann versendet, wenn Temperatur unter oder Temperatur über 18 Grad? `

          Nein, jedesmal wenn der wert de temperatur sich jetzt aendert bekommst du eine nachricht per telegram abhaenging von deiner definition des falls.

          Das script ist jetzt zu "dumm" um zu verstehen das es schonmal eine nachricht abgeschikt hat, das koennen wir aber mit einer variable abfangen !

          @Kueppert:

          2. Frage:

          Gibt es nicht in Blockly die Mögichkeit, genau dieses mein Blockly alle 15 Minuten mal durchzuspielen und den Trigger zu prüfen? Und in der Zwischenzeit das Script "auszuschalten"? Denke, das wäre auch Ressourcenschonender… `

          Ehm noe so nicht jetzt mal par basis sachen dazu:

          • du musst dich entscheiden ob du mit einem trigger (reagiert wen was passiert) arbeiten moechtest oder in einem zeit interval (also entweder event driven oder interval)

          • Du kannst natuerlich auch einfach den zeitplan nemen, keinen trigger benutzen (komplett weck lassen) und nur die falls bloecke drin lassen dan laeuft es nur 1 mal pro 15 minuten

          Nachteil : nur alle 15 min meldung nicht direkt, das wuerde ich z.b. nicht gerne haben ich will immer info direkt und 15 min sind lange)

          • wen du das script auschalten moechtest mus es ja auch irgendwan wieder eingeschaltet werden und genau das muss mit einenm trigger uberwacht werden

          • mach dir keine sorgen hier um die ressourcen, ein derartiges script mit 2, 3 falls bloecken und ueberwachun eines triggers frisst fast garnichts !

          Aber wie gesagt, dein problem is nicht sosehr die 15 min wen ich dich richtige verstehen sind die total egal. Du moechtest naemlich eine meldung wen < 18 und danach erst wieder wen > 18 richtig ?

          @Kueppert:

          PS: Wenn ich dumme Fragen stelle, sag das oder sag mir, das steht schon hier irgendwo im Forum. Ich hab bei den ersten beiden uchen leider nix gefunden;o)

          Danke und Grüße, Thorsten `

          Nope, du suchst… probierst.... fragst wen du festlaeufst und dan sogar mit der bemerkung: gib mir nicht die loesung ich wil selber... Ist doch super so ! 🙂

          1 Reply Last reply Reply Quote 0
          • K
            Kueppert last edited by

            Hi Dutch,

            deine Vermutung Aber wie gesagt, dein problem is nicht sosehr die 15 min wen ich dich richtige verstehen sind die total egal. Du moechtest naemlich eine meldung wen < 18 und danach erst wieder wen > 18 richtig ? ist absolut korrekt.

            Kannst du mir einen Hinweis geben/einen Link zu einem Beitrag, anhand dessen ich das nun jetzt selbst verstehen und nachbauen kann? Da fehlt mir aktuell ein Ansatz 😕

            PS: Super, danke dir. Wollte es nur mal gesagt haben 😉

            VG Thorsten

            1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              :mrgreen: dachte ich mir doch 🙂

              als ansatzt: der trigger kan so bleiben, also wir lassen es auf pruefe jedesmal wen sich die temperatur aendert.

              jet musst du mit variabelen arbeiten, in dem erste block sagst du dan auch die variable auf true und bei dem sonst falls die variable auf falsch.

              Jetzt must du noch deine IF erweitern das er sowohl den wert als die variable uerberprueft. Etwas aehnliches haben wir hier oefter gemacht aber die threads stehen noch viel mehr sachen drinne wie timeouts usw und ich moechte dich mit dessen beispielen jetzt nicht unnoetig belasten !.

              Schau mal in blockly unter variabelen, setzen/erstellen abfragen usw schaffst du schon 🙂

              (Es schnell fuer dich nach zu bauen waehre jetzt leichter, mal sehn ob du an dieser info genug hast :).

              ~Dutch

              1 Reply Last reply Reply Quote 0
              • K
                Kueppert last edited by

                @Dutchman:

                :mrgreen: dachte ich mir doch 🙂

                als ansatzt: der trigger kan so bleiben, also wir lassen es auf pruefe jedesmal wen sich die temperatur aendert.

                jet musst du mit variabelen arbeiten, in dem erste block sagst du dan auch die variable auf true und bei dem sonst falls die variable auf falsch.

                Jetzt must du noch deine IF erweitern das er sowohl den wert als die variable uerberprueft. Etwas aehnliches haben wir hier oefter gemacht aber die threads stehen noch viel mehr sachen drinne wie timeouts usw und ich moechte dich mit dessen beispielen jetzt nicht unnoetig belasten !.

                Schau mal in blockly unter variabelen, setzen/erstellen abfragen usw schaffst du schon 🙂

                (Es schnell fuer dich nach zu bauen waehre jetzt leichter, mal sehn ob du an dieser info genug hast :).

                ~Dutch `

                ich glaube so müsste es funktionieren (Math soll nicht das Problem sein, also Logik, aber das muss man erst mal in diese für mich neue Form bringen 🙂 😞

                2700_iobroker-skript.png

                Was sagst dazu? :mrgreen: Hab mal versuch die Hinweise zu verstehen und umzusetzen. Sieht für mich logisch aus…

                Danke und Grüße, Thorsten

                PS: Die Variable - müsste ich die nicht jetzt unter Objekte finden unter dem Javascript-Ordner?? :?: Ist nix...hab das Skript schon neu gestartet und die Objekt-Seite auch.

                1 Reply Last reply Reply Quote 0
                • Dutchman
                  Dutchman Developer Most Active Administrators last edited by

                  @Kueppert:

                  Was sagst dazu? :mrgreen: Hab mal versuch die Hinweise zu verstehen und umzusetzen. Sieht für mich logisch aus… `

                  richtig so hab ich das gemeint 🙂

                  @Kueppert:

                  PS: Die Variable - müsste ich die nicht jetzt unter Objekte finden unter dem Javascript-Ordner?? :?: Ist nix…hab das Skript schon neu gestartet und die Objekt-Seite auch. `

                  Nein, eine variable so wie du jetzt benutzt gibt es nur im script selber und nicht als object. Man kan mit in scripten/iobroker 2 sachen machen:

                  • Man erstellt sich eine variable : nachteil, diese ist nicht ausserhalb des scriptes verfuegbar

                  • Man erstellt sich ein object in javascript.0.xxx : vorteil, man kan diese auch in andere scripten benutzen

                  Dan wir den status jetzt aber nur in diesem script brauchen um zu ueberpruefen ob bereits eine narchricht geschickt wurde ist eine variable ausreichend.

                  Wen du da spaeter was in VIS visualiesieren moechtest (meldung wurde gesendet z.b.) muessen wir ein object benutzen.

                  Noch letzter tip, du benutst jetzt 0/1 (ist OK !) kannst aber auch wahr/unwahr nehmen das ist verstaendlicher auch wen man spaeter mal wieder nach dem script schaut.

                  Aber im grundegenommen sollte es jetzt so gehen wie du wolltest

                  1 Reply Last reply Reply Quote 0
                  • K
                    Kueppert last edited by

                    Cool 😄

                    Dann probiere ich die Temperatur morgen Mal auf unter 18 Grad zu bekommen (Lüften) und schreibe hier dann nochmal das Ergebnis - inkl ggf gelöst in der Überschrift 😉

                    Vielen Dank Dutch

                    Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • Dutchman
                      Dutchman Developer Most Active Administrators last edited by

                      @Kueppert:

                      Cool 😄

                      Dann probiere ich die Temperatur morgen Mal auf unter 18 Grad zu bekommen (Lüften) und schreibe hier dann nochmal das Ergebnis - inkl ggf gelöst in der Überschrift 😉

                      Vielen Dank Dutch

                      Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `

                      😄

                      Oder due aenderst mal die temperatur in deinem script von 18 auf 20 oder so 😛

                      Da kan man auch noch mehr machen, z.b. den wert 18 per vis einstelbar machen fuer deine nachrichten usw aber die basis steht erstmal !

                      1 Reply Last reply Reply Quote 0
                      • K
                        Kueppert last edited by

                        Hi Dutch,

                        hat leider nicht funktioniert. Denke es lag an der Variablen die nicht befüllt war…

                        habe es jetzt so gemacht, dass ich eine neue Variable angelegt habe wie folgt:

                        2700_iobroker-trigger.png
                        2700_iobroker-trigger2.png

                        mein Blockly habe ich wie folg angepasst:
                        2700_iobroker-blockly.png

                        führt nun zu folgendem Fehler im Log 😞
                        2700_iobroker-fehlerlog.png

                        Ich denke, das Anlegen von so einer Variablen ist nicht so easy wie ich dachte ^^

                        1 Reply Last reply Reply Quote 0
                        • R
                          RappiRN Most Active last edited by

                          Unter javascript.0.scriptEnabled sollen keine Objekte angelegt werden.

                          javascript.0 ist schon richtig danach solltest du dir über eine klare Struktur Gedanken machen, damit das noch übersichtlich bleibt!

                          Was soll denn diese Variable bewirken?

                          Edit: Hast du denn bei dem oberen Versuch noch die Abfrage auf "Wert von" Variable geändert? Das hat da noch gefehlt, vielleicht war das der Grund für das Nichtfunktionieren!

                          Enrico

                          1 Reply Last reply Reply Quote 0
                          • K
                            Kueppert last edited by

                            Ach das gibt es doch nicht…hab es jetzt wieder zurück gebaut und die Variable unter javascript wieder gelöscht.

                            Sieht jetzt wieder wie folgt aus:

                            2700_iobroker-blockly.png

                            Ich kann bei meiner Variablen "KinderzimmerTEMP_var" nicht "Wert vom Objekt ID" benutzen. Ich nutze diese Variable ja nur ausschließlich hier im blockly. Unter Objekte ist die Variable ja nicht zu finden…

                            PS: Ich glaube ich mache lieber erst morgen weiter ^^

                            1 Reply Last reply Reply Quote 0
                            • R
                              RappiRN Most Active last edited by

                              Alles richtig soweit, nur bei beiden und-Blöcken muss bei der Variablen noch der Block "Wert von" dazu! In diesen Block kommt dann die Variable!

                              Es muss dann heißen "Wert von Variable…" ist gleich Wahr/Unwahr!

                              Enrico

                              Edit: Hab gerade nochmal probiert, jetzt weiß ich erstmal, was du meinst! :?

                              1 Reply Last reply Reply Quote 0
                              • R
                                RappiRN Most Active last edited by

                                Vielleicht musst du der Variablen über dem Trigger noch einen Zustand mitgeben, also über dem Trigger "setze Variable auf…", dann bekommt die Variable einen Zustand beim Scriptstart!

                                Enrico

                                1 Reply Last reply Reply Quote 0
                                • Dutchman
                                  Dutchman Developer Most Active Administrators last edited by

                                  Die Variable ist NULL daher der Fehler, einfach die Variable mit unwahr füllen bei Script start (also außerhalb deines Trigger Block) dann sollte es gut sein

                                  –-----------------------

                                  Send from mobile device

                                  Das schöne ios hat Auto Korrektur zum k****

                                  Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    Kueppert last edited by

                                    @Dutchman:

                                    Die Variable ist NULL daher der Fehler, einfach die Variable mit unwahr füllen bei Script start (also außerhalb deines Trigger Block) dann sollte es gut sein

                                    –-----------------------

                                    Send from mobile device

                                    Das schöne ios hat Auto Korrektur zum k****

                                    Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community `

                                    So, ich habe das Blockly um das Setzen der Variable ergänzt - und Debug-Blöcke versucht einzubauen (bringen keinen Mehrwert so wie ich sie verwende :?: da nirgends mehr steht als vorher. Hab ich vermutlich falsch benutzt).

                                    Wenn ich das Script nun stoppe und neu starte - erhalte ich trotzdem keine Meldung via Telegramm 😞

                                    2700_iobroker-blockly.png

                                    An Telegramm sollte es nicht liegen - hat ja vorher mal funktioniert. Langsam fange ich an, etwas an mir zu zweifeln. Das sieht doch alles ganz logisch aus?!

                                    Kann ich mit diesen Debug-Blöcken es erreichen, dass ich detailliert mitbekomme, was passiert wenn ich das Skript neu starte?

                                    Temperatur im Kinderzimmer aktuell: 18,8 Grad

                                    Danke euch und Grüße, Thorsten

                                    1 Reply Last reply Reply Quote 0
                                    • Dutchman
                                      Dutchman Developer Most Active Administrators last edited by

                                      Dein Script wird nur eine Meldung generieren wenn sich die Temperatur ändert nicht bei Script start!

                                      –-----------------------

                                      Send from mobile device

                                      Das schöne ios hat Auto Korrektur zum k****

                                      Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        Kueppert last edited by

                                        @Dutchman:

                                        Dein Script wird nur eine Meldung generieren wenn sich die Temperatur ändert nicht bei Script start!

                                        –-----------------------

                                        Send from mobile device

                                        Das schöne ios hat Auto Korrektur zum k****

                                        Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community `

                                        HAHAHAAAAAAAAA,

                                        du hast Recht. Habe gerade eine Meldung via Telegram erhalten. Juhuuuuuuuu :mrgreen: :mrgreen: :mrgreen:

                                        Danke euch für die Hilfe - und besonders Dutch für deine Geduld. Dann setze ich dieses Thema mal auf "gelöst" und bastel fleissig weiter.

                                        Danke danke und viele Grüße, Thorsten

                                        1 Reply Last reply Reply Quote 0
                                        • Dutchman
                                          Dutchman Developer Most Active Administrators last edited by

                                          🙂 sehr schön und viel Spaß damit

                                          –-----------------------

                                          Send from mobile device

                                          Das schöne ios hat Auto Korrektur zum k****

                                          Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                                          1 Reply Last reply Reply Quote 0
                                          • rantanplan
                                            rantanplan last edited by

                                            Hallo Kueppert

                                            Alles was sich INNERHALB eines Triggers befindet, wird ausgeführt wenn der getriggerte Wert sich ändert.

                                            Alles was sich AUSSERHALB eines Triggers befindet, wird EINMALIG ausgeführt wenn das Script gestartet wird.

                                            Dein Trigger reagiert wenn sich der Wert von "Temperatur" ändert.

                                            Danach wird "KinderzimmerTEMP_var" IMMER SOFORT auf "unwahr" gesetzt.

                                            Deine "sonst falls" Bedingung wird also NIE erfüllt.

                                            Der Block "setze KinderzimmerTEMP_var auf unwahr" gehört also AUSSERHALB des Triggers.

                                            Dein "Debug output Ende Trigger" müsste "Debug output Start Script" lauten.

                                            Ein Trigger wird NIE beendet! Außer man stoppt das Script.

                                            Grüße

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            422
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            35
                                            6178
                                            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