Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [GELÖST] Einfaches Skript Trockner

    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] Einfaches Skript Trockner

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      @Gerni:

      fertig `
      und damit wird es schon wieder komplizierter.

      Timer starten, timer abbrechen, wenn doch wieder über dem Wert…..

      @Gerni:

      Ich weiß auch gerade nicht ob das über Sonoff mit Tasmota geht. `
      Wenn du einen current Wert bekommst den du als Trigger nutzen willst, musst du den auch loggen können.

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • G
        Gerni last edited by

        Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um.

        Gesendet von meinem MI 5s mit Tapatalk

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

          @Gerni:

          Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um. `
          Die hast Du doch gefunden und waren zu kompliziert.

          1 Reply Last reply Reply Quote 0
          • G
            Gerni last edited by

            @rantanplan:

            @Gerni:

            Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um. Die hast Du doch gefunden und waren zu kompliziert. Ach ja…. Und das hilft jetzt bei welcher Lösung nochmal?...

            Gesendet von meinem MI 5s mit Tapatalk

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

              @Gerni:

              @rantanplan:

              @Gerni:

              Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um. Die hast Du doch gefunden und waren zu kompliziert. Ach ja…. Und das hilft jetzt bei welcher Lösung nochmal?... `
              Sollen wir jetzt speziell für Dich ein "einfaches" Beispiel erarbeiten, dass Du dann umbauen kannst? :roll:

              Ein wenig viel verlangt, oder?

              Grüße

              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators last edited by

                Solange wir nicht auch nur annähernd wissen wie dein Trockner "tickt" ergibt das ganze eh keinen Sinn.

                Bitte logge daher mindestens eine Trocknung und stelle hier den Graphen dazu ein.

                Gruß

                Rainer

                1 Reply Last reply Reply Quote 0
                • N
                  nibblerrick last edited by

                  Also das ist meins fuer die Waschmaschine, was du ja sicherlich auch schon gefunden hast in den anderen Threads.

                  Ist dir das schon zu kompliziert?

                  Da faellt mir ein ich wollte immernochmal dieses Previousstatezeugs angucken, aber das ist n anderes Thema
                  3803_firefox_2018-02-09_11-32-14.png

                  1 Reply Last reply Reply Quote 0
                  • G
                    Gerni last edited by

                    @nibblerrick:

                    Also das ist meins fuer die Waschmaschine, was du ja sicherlich auch schon gefunden hast in den anderen Threads.

                    Ist dir das schon zu kompliziert?

                    Da faellt mir ein ich wollte immernochmal dieses Previousstatezeugs angucken, aber das ist n anderes Thema ` Danke. Kannst das mal exportieren und einstellen? Ich importiere es mal und guck mal. Vielen Dank. Gruß

                    Gesendet von meinem MI 5s mit Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • N
                      nibblerrick last edited by

                      Die paar Bausteine bekommst du ja schneller nachgebaut als importiert, die Objekte musst du ja sowieso anpassen.

                      Bin gespannt ob es bei dir auch seinen Dienst verrichtet.

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

                        @nibblerrick:

                        Also das ist meins fuer die Waschmaschine `
                        In Javascript kann man dieses Skript sehr einfach realisieren:

                        const idPower = 'hm-rpc.0...POWER';
                        const idUse = 'javascript.0.WMinBetrieb';
                        
                        on(idPower, function(dp) {
                           if(dp.state.val > 2) setState(idUse, true, true);
                           else if(dp.oldState.val > 2) {
                              sendTo('pushover', {
                                 message:  'Waschmaschine fertig', 
                                 title:    'Meldung Waschmaschine'
                              });
                              setState(idUse, false, true);
                           }
                        });
                        
                        1 Reply Last reply Reply Quote 0
                        • rantanplan
                          rantanplan last edited by

                          @paul53:

                          on(idPower, function(dp) {

                          if(dp.state.val > 2) setState(idUse, true, true);

                          else if(dp.oldState.val > 2) { <–-------------------------Ist das richtig?

                          sendTo('pushover', {

                          message: 'Waschmaschine fertig',

                          title: 'Meldung Waschmaschine'

                          });

                          setState(idUse, false, true);

                          }

                          }); `

                          Grüße

                          1 Reply Last reply Reply Quote 0
                          • G
                            Gerni last edited by

                            @nibblerrick:

                            Also das ist meins fuer die Waschmaschine, was du ja sicherlich auch schon gefunden hast in den anderen Threads.

                            Ist dir das schon zu kompliziert?

                            Da faellt mir ein ich wollte immernochmal dieses Previousstatezeugs angucken, aber das ist n anderes Thema `

                            In dem ersten "Falls" Block setzt Du "Setze Waschmaschine_fertig auf …." Wo kommt denn "Waschmaschine_fertig" her oder was ist das?

                            Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an?

                            Gruß

                            Stefan

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

                              @rantanplan:

                              else if(dp.oldState.val > 2) { <–-------------------------Ist das richtig? `
                              Ja, es soll nur <u>einmal</u> gesendet werden, wenn die WM (der Trockner) lief (oldState.val > Grenzwert) und jetzt nicht mehr läuft. Eine Grenzwertunterschreitung bedeutet nicht zwangsläufig, dass der Wert unterhalb des Grenzwertes konstant bleibt. Die Abfrage hat die gleiche Wirkung wie die Skriptvariable Waschmaschine_fertig in dem Blockly Script.
                              @Gerni:

                              Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an? `
                              Den Datenpunkt (Typ: Logikwert) kannst Du im Reiter "Objekte" unter javascript.0 anlegen. Wenn Du ihn nicht benötigst (nur das Pushover), dann kannst Du die Deklaration der ID und die setStates() löschen.

                              Script ohne Datenpunkt (nur Pushover):

                              const idPower = 'hm-rpc.0...POWER';
                              
                              on(idPower, function(dp) {
                                 if(dp.state.val <= 2 && dp.oldState.val > 2) {
                                    sendTo('pushover', {
                                       message:  'Waschmaschine fertig',
                                       title:    'Meldung Waschmaschine'
                                    });
                                 }
                              });
                              
                              1 Reply Last reply Reply Quote 0
                              • rantanplan
                                rantanplan last edited by

                                @paul53:

                                Ja, es soll nur <u>einmal</u> gesendet werden, wenn die WM (der Trockner) lief (oldState.val > Grenzwert) und jetzt nicht mehr läuft. Eine Grenzwertunterschreitung bedeutet nicht zwangsläufig, dass der Wert unterhalb des Grenzwertes konstant bleibt. Die Abfrage hat die gleiche Wirkung wie die `
                                Ja genau. Hast Du Dir schon mal den Verlauf solcher Werte von einer WM oder TR angeschaut?

                                Ich bin auf jeden Fall gespannt 😉

                                Grüße

                                1 Reply Last reply Reply Quote 0
                                • N
                                  nibblerrick last edited by

                                  @paul53:

                                  @Gerni:

                                  Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an? Den Datenpunkt (Typ: Logikwert) kannst Du im Reiter "Objekte" unter javascript.0 anlegen. Wenn Du ihn nicht benötigst (nur das Pushover), dann kannst Du die Deklaration der ID und die __setStates()__ löschen.

                                  Ja, der ist nicht noetig, den habe ich nur eingefuegt damit ich mal was in Vis abbilden kann. Vis ist allerdings bei mir so ein "demnaechst"-Projekt…

                                  Und klar kann man das in Javascript einfach machen, wenn man JS kann. Aber dafuer gibt es ja Blockly, womit man sich allerdings auch gut JS-Vorlagen basteln kann indem man sich den Code anzeigen laesst.

                                  1 Reply Last reply Reply Quote 0
                                  • G
                                    Gerni last edited by

                                    @paul53:

                                    @rantanplan:

                                    else if(dp.oldState.val > 2) { <–-------------------------Ist das richtig? `
                                    Ja, es soll nur <u>einmal</u> gesendet werden, wenn die WM (der Trockner) lief (oldState.val > Grenzwert) und jetzt nicht mehr läuft. Eine Grenzwertunterschreitung bedeutet nicht zwangsläufig, dass der Wert unterhalb des Grenzwertes konstant bleibt. Die Abfrage hat die gleiche Wirkung wie die Skriptvariable Waschmaschine_fertig in dem Blockly Script.
                                    @Gerni:

                                    Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an? `
                                    Den Datenpunkt (Typ: Logikwert) kannst Du im Reiter "Objekte" unter javascript.0 anlegen. Wenn Du ihn nicht benötigst (nur das Pushover), dann kannst Du die Deklaration der ID und die setStates() löschen.

                                    Script ohne Datenpunkt (nur Pushover):

                                    const idPower = 'hm-rpc.0...POWER';
                                    
                                    on(idPower, function(dp) {
                                       if(dp.state.val <= 2 && dp.oldState.val > 2) {
                                          sendTo('pushover', {
                                             message:  'Waschmaschine fertig',
                                             title:    'Meldung Waschmaschine'
                                          });
                                       }
                                    });
                                    ```` `  Das ist jetzt ein Java Script, richtig? Ich bin ja schon froh wenn ich im Blockly alles so finde :-D
                                    

                                    Aber ja, es reicht wenn EINE Nachricht kommt. Wäre das hier nicht so, dass unzählige Nachrichten kommen weil der Verbrauch ja länger unter Wert X bleibt?

                                    Gesendet von meinem MI 5s mit Tapatalk

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      tempestas last edited by

                                      > Wäre das hier nicht so, dass unzählige Nachrichten kommen weil der Verbrauch ja länger unter Wert X bleibt?

                                      Nein.

                                      Das Skript triggerd bei Wertänderung und prüft dann, ob der neue Wert unter bzw gleich 2 ist und der alte Wert über 2.

                                      Also muss sich 1. was ändern und 2. auch noch die obige Bedingung erfüllt sein. Solange sich Werte unterhalb von 2 ändern passiert nichts. Wenn es von <=2 auf >2 geht passiert auch nichts sondern erst, wenn es (wieder) von >2 auf <=2 geht

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        Gerni last edited by

                                        Script ohne Datenpunkt (nur Pushover):

                                        const idPower = 'hm-rpc.0...POWER';
                                        
                                        on(idPower, function(dp) {
                                           if(dp.state.val <= 2 && dp.oldState.val > 2) {
                                              sendTo('pushover', {
                                                 message:  'Waschmaschine fertig',
                                                 title:    'Meldung Waschmaschine'
                                              });
                                           }
                                        });
                                        

                                        Wie kriege ich denn hier nun meine Geräte (Sonoff Pow rein von welchem der Wert aufgelesen wird)? Sry, wie gesagt Blockly finde ich mich einigermaßen mehr und mehr zurecht. Java hört dann aber auf.

                                        Oder wärst so nett und könntest das mal als Blockly packen?

                                        Gruß

                                        Stefan

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          tempestas last edited by

                                          const idPower = 'hm-rpc.0...POWER';
                                          
                                          

                                          an der Stelle trägst du deinen Datenpunnkt ein.

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            Gerni last edited by

                                            Hi,

                                            ich glaube es läuft nun. Manuell anzulegende Zustände werden automatisch erzeugt und die Benachrichtigung hat zumindest gestern funktioniert. Werde es weiter beobachten. Aber für alle die es interessiert:

                                            ! ````
                                            <xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id="F,.Vod%f}Cg;|Oo;94-p" x="-387" y="-112"><field name="NAME">javascript.0.Strompreis_BEV</field>
                                            <statement name="STATEMENT"><block type="create" id="Ea.~Ic(Gxsfbs-Qh92#Q"><field name="NAME">javascript.0.Trockner_fertig</field>
                                            <statement name="STATEMENT"><block type="on_ext" id="|!S]R7E/#@_?QYFja{9-"><mutation items="1"></mutation>
                                            <field name="CONDITION">any</field>

                                                    <value name="OID0"><shadow type="field_oid" id="|7}Z(4Aw)J3~+GxkGmXz"><field name="oid">default</field></shadow> 
                                                      <block type="field_oid" id="aSTL*SXFQ4VX{9)}~weM"><field name="oid">sonoff.0.sonoff_Trockner.ENERGY_Power</field></block></value> 
                                                    <statement name="STATEMENT"><block type="controls_if" id="oySPD#0|W2#W|38omTjm"><mutation elseif="1"></mutation>
                                                        <value name="IF0"><block type="logic_compare" id="`Y#S-zU_+g~,7;RurA,M"><field name="OP">GT</field>
                                                            <value name="A"><block type="get_value" id="!u87F9e9={O16d0^q@Ce"><field name="ATTR">val</field>
                                                                <field name="OID">sonoff.0.sonoff_Trockner.ENERGY_Power</field></block></value> 
                                                            <value name="B"><block type="text" id="POqK5+]V9aW@.^u4:0{u"><field name="TEXT">100</field></block></value></block></value> 
                                                        <statement name="DO0"><block type="control" id="]:A|]Se/Erykn]%ooL_a"><mutation delay_input="false"></mutation>
                                                            <field name="OID">javascript.0.Trockner_fertig</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE"><block type="logic_boolean" id="3w/816f|wlN#7`]jC+T]"><field name="BOOL">FALSE</field></block></value></block></statement> 
                                                        <value name="IF1"><block type="logic_compare" id="wBze(wZ)tu,@pk{nh/!D"><field name="OP">LT</field>
                                                            <value name="A"><block type="get_value" id="rn/~9BXhlZ`6GLOQ%lPY"><field name="ATTR">val</field>
                                                                <field name="OID">sonoff.0.sonoff_Trockner.ENERGY_Power</field></block></value> 
                                                            <value name="B"><block type="text" id=";pS%_T#H}gn1u1-sT;A4"><field name="TEXT">2</field></block></value></block></value> 
                                                        <statement name="DO1"><block type="control" id="RGwxU`:;0LXmVUMqYnzQ"><mutation delay_input="false"></mutation>
                                                            <field name="OID">javascript.0.Trockner_fertig</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE"><block type="logic_boolean" id="@G`^/O_H7lu-hSq7XR;h"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> 
                                                    <next><block type="on_ext" id="j~P,]MqE6/m#CqI4OC}z"><mutation items="1"></mutation>
                                                        <field name="CONDITION">ne</field>
                                            
                                                        <value name="OID0"><shadow type="field_oid" id="q3c?,Y@j8#Mx69G7#_aO"><field name="oid">default</field></shadow> 
                                                          <block type="field_oid" id="xId:05{[KI3Va|)pIt^Z"><field name="oid">javascript.0.Trockner_fertig</field></block></value> 
                                                        <statement name="STATEMENT"><block type="controls_if" id="HaH]+m[(G#n|KinBlxPQ"><mutation elseif="1"></mutation>
                                                            <value name="IF0"><block type="logic_compare" id="mzkH?,-peLm](^UVAwLw"><field name="OP">EQ</field>
                                                                <value name="A"><block type="get_value" id="JmU8`T/*u8fURho[MmQU"><field name="ATTR">val</field>
                                                                    <field name="OID">javascript.0.Trockner_fertig</field></block></value> 
                                                                <value name="B"><block type="logic_boolean" id="_jka=uRyG7LS7_Q*__1U"><field name="BOOL">FALSE</field></block></value></block></value> 
                                                            <statement name="DO0"><block type="pushover" id="DFuo.arGMtzP:9IjX5?j"><field name="PRIORITY">0</field>
                                            
                                                                <value name="MESSAGE"><shadow type="text" id="CZMifPaOx(95WrhRMhtP"><field name="TEXT">text</field></shadow> 
                                                                  <block type="text" id="Dn.?KbP;Khknz]Ur6BtB"><field name="TEXT">Der Trockner wurde eingeschaltet und meldet sich wenn er ausgeräumt werden möchte.</field></block></value> 
                                                                <value name="TITLE"><block type="text" id="*s%D{wA[N^kS7~nVNs-+"><field name="TEXT">Der Trockner wurde eingeschaltet</field></block></value></block></statement> 
                                                            <value name="IF1"><block type="logic_compare" id="ls9KLR)`)iRDzXe4bn:)"><field name="OP">EQ</field>
                                                                <value name="A"><block type="get_value" id="lCkRu;T@itl}jSua3qs^"><field name="ATTR">val</field>
                                                                    <field name="OID">javascript.0.Trockner_fertig</field></block></value> 
                                                                <value name="B"><block type="logic_boolean" id="KT=xo9.(?iokmzj{MT[F"><field name="BOOL">TRUE</field></block></value></block></value> 
                                                            <statement name="DO1"><block type="pushover" id="O0qXN.qJqKyU,[/*W!n^"><field name="PRIORITY">0</field>
                                            
                                                                <value name="MESSAGE"><shadow type="text" id="CZMifPaOx(95WrhRMhtP"><field name="TEXT">text</field></shadow> 
                                                                  <block type="text_join" id="uf6p=p%N*yG5@{=crOhw"><mutation items="6"></mutation>
                                                                    <value name="ADD0"><block type="text" id=")(]Iu`7kT^Vnxq@Hzv2}"><field name="TEXT">Der Trockner ist fertig.</field></block></value> 
                                                                    <value name="ADD1"><block type="text" id="f5MUuB~P6/[V.0O1Ok!{"><field name="TEXT">Es wurden</field></block></value> 
                                                                    <value name="ADD2"><block type="get_value" id="J}EQy*8e?:i6f!*9xLQj"><field name="ATTR">val</field>
                                                                        <field name="OID">sonoff.0.sonoff_Trockner.ENERGY_Today</field></block></value> 
                                                                    <value name="ADD3"><block type="text" id="%b@I]9[H5fqTEYQKlwmd"><field name="TEXT">Kwh verbraucht, das endspricht</field></block></value> 
                                                                    <value name="ADD4"><block type="math_arithmetic" id="8T*YXBu,g~[{yH:c:CP~"><field name="OP">MULTIPLY</field>
                                                                        <value name="A"><shadow type="math_number" id=";B0#rrl+)73i)N=QwR.V"><field name="NUM">1</field></shadow> 
                                                                          <block type="get_value" id="()b_GyuWg{.Jeda8ESvS"><field name="ATTR">val</field>
                                                                            <field name="OID">sonoff.0.sonoff_Trockner.ENERGY_Today</field></block></value> 
                                                                        <value name="B"><shadow type="math_number" id="(qK48T-k{%alK3dXTK5p"><field name="NUM">1</field></shadow> 
                                                                          <block type="get_value" id="T:XXwSUtY6*TI*yvB]]O"><field name="ATTR">val</field>
                                                                            <field name="OID">javascript.0.Strompreis_BEV</field></block></value></block></value> 
                                                                    <value name="ADD5"><block type="text" id="-F4#`(@HuzhNr5/M^*m@"><field name="TEXT"> Euro</field></block></value></block></value> 
                                                                <value name="TITLE"><block type="text" id="JWit=}?Pr(gz%RgJZp?B"><field name="TEXT">Der Trockner ist fertig.</field></block></value></block></statement></block></statement></block></next></block></statement></block></statement></block></xml> 
                                            
                                            [3449_blockly_trockner_benachrichtigung.png](/assets/uploads/files/3449_blockly_trockner_benachrichtigung.png)
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            735
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            23
                                            4186
                                            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