[Frage] Blockly timeout

Fragen zum Skripten mit ioBroker.javascript
Antworten
Linedancer
professional
Beiträge: 229
Registriert: 20.10.2016, 13:21

[Frage] Blockly timeout

Beitrag von Linedancer » 08.07.2018, 10:37

Hallo Gemeinde,

Irgendwie habe ich mit der timeout Funktion immer wieder mal ein Problem, wobei das Problem wohl hinter der Tastatur liegt.
Aufgabe:
Überwachung einer Brunnenpumpe. Die Pumpe wird über einen Druckschalter ein und aus geschaltet. Bei Schlauchbruch, oder undichten Gardena Dinger läuft die Pumpe halt ewig.

Hier mein Blockly mit dem ich das lösen will:
2018-07-08.png
und hier der Export dazu:
Spoiler: Show hidden text

Code: Alles auswählen

<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="on" id="NTEE~^VRU#%~-WwP?z=:" x="63" y="38">
    <field name="OID">hm-rpc.2.OEQ0948398.2.POWER</field>
    <field name="CONDITION">ne</field>
    <field name="ACK_CONDITION"></field>
    <statement name="STATEMENT">
      <block type="debug" id="dq[0RI_8;XW#6[,d,5wS">
        <field name="Severity">log</field>
        <value name="TEXT">
          <shadow type="text" id="DYN,_qknnD!q+eveH{-:">
            <field name="TEXT">Pumpe wurde EINgeschaltet</field>
          </shadow>
        </value>
        <next>
          <block type="controls_if" id="]B)C,|~k;PkuP5Oo[-R~">
            <value name="IF0">
              <block type="logic_compare" id="~dDO8;IQyrK_lax)6Q%o">
                <field name="OP">GT</field>
                <value name="A">
                  <block type="get_value" id="]i3E~{;~u|oH#l0:%Lt}">
                    <field name="ATTR">val</field>
                    <field name="OID">hm-rpc.2.OEQ0948398.2.POWER</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_number" id="Sddf,l_(`SX,i.8As8c|">
                    <field name="NUM">20</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="timeouts_settimeout" id="QrQrnNh):v9+wG|WIXBS">
                <field name="NAME">timeout</field>
                <field name="DELAY">15</field>
                <field name="UNIT">min</field>
                <statement name="STATEMENT">
                  <block type="debug" id="gVv08kyBYgU`mliCff|7">
                    <field name="Severity">log</field>
                    <value name="TEXT">
                      <shadow type="text" id="Ge!y!?ug7.(!0+*U+PU=">
                        <field name="TEXT">Pumpe wurde AUSgeschaltet</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="control" id="}Be`xXr_Yo9W1?30%D7_">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">hm-rpc.2.OEQ0948398.1.STATE</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="q0a:y{*p;TjvKY)]]s=c">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
            <next>
              <block type="controls_if" id="F.Zz7Aj8n0|=fna:-NTr">
                <value name="IF0">
                  <block type="logic_compare" id="MctrBOI0=PDpwM-L:-A;">
                    <field name="OP">LT</field>
                    <value name="A">
                      <block type="get_value" id="W0VZ!+lgMnNV9U8@~Sw/">
                        <field name="ATTR">val</field>
                        <field name="OID">hm-rpc.2.OEQ0948398.2.POWER</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="yboFt9BP^U%N]6DaaV?]">
                        <field name="NUM">10</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="timeouts_cleartimeout" id=".vWQ/aN*}rzh33yg0lP-">
                    <field name="NAME">timeout</field>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
</xml>
Wenn ich den Gartenschlauch aufdrehe, funktioniert die Abschaltung nach 15 Minuten. Wenn ich allerdings vor Ablauf der 15 Minuten den Schlauch zu drehe wird die Pumpe nach 15 Minuten trotzdem abgeschaltet, was ich nicht möchte weil damit der Komfort des Druckschalters weg ist.

Wo ist hier mein Fehler in dem Blockly?
--
Ciao, Gerhard

quorle
professional
Beiträge: 122
Registriert: 18.01.2018, 07:23

[Frage] Blockly timeout

Beitrag von quorle » 08.07.2018, 19:09

Kleines Verständnisproblem. Dein State: Garten_Pumpe_Bewässerung:2.POWER ist dein Druckaufnehmer? Oder hab ich mich da etwas verkuckt?
Wenn man den Hahn zu dreht steigt doch auch der Druck an, oder sehe ich das falsch und somit würde ja dann das Script wieder so arbeiten wie es geschrieben ist.


Gesendet von iPhone mit Tapatalk

Linedancer
professional
Beiträge: 229
Registriert: 20.10.2016, 13:21

Re: [Frage] Blockly timeout

Beitrag von Linedancer » 08.07.2018, 19:57

Hallo,

sorry, vergessen zu beschreiben. Die Pumpe hängt an einem HM Aktor mit Leistungsmessung und der Datenpunkt ist die aufgenommene Leistung in W.
--
Ciao, Gerhard

quorle
professional
Beiträge: 122
Registriert: 18.01.2018, 07:23

Re: [Frage] Blockly timeout

Beitrag von quorle » 08.07.2018, 20:06

Linedancer hat geschrieben:Hallo,

sorry, vergessen zu beschreiben. Die Pumpe hängt an einem HM Aktor mit Leistungsmessung und der Datenpunkt ist die aufgenommene Leistung in W.
Ok ich verstehe. Hast du dir schon einmal die leistungswerte angesehen die du hast wenn die Pumpe normal läuft und wenn du den Hahn zudrehst? Eventuell liegt es nur an den leistungswerten.


Gesendet von iPhone mit Tapatalk

Linedancer
professional
Beiträge: 229
Registriert: 20.10.2016, 13:21

Re: [Frage] Blockly timeout

Beitrag von Linedancer » 08.07.2018, 20:16

Grade mal kontrolliert.
wenn die Pumpe läuft werden 650W gezogen, wenn die Pumpe aus ist stehen, warum auch immer- 1W an. Sollte also eigentlich passen.
--
Ciao, Gerhard

Benutzeravatar
Dutchman
guru
Beiträge: 3542
Registriert: 07.01.2016, 23:42

Re: [Frage] Blockly timeout

Beitrag von Dutchman » 08.07.2018, 20:19

Ehm, was möchtest du jetzt mit welchen triggern/Werten und Aktion genau erreichen und woran Scheiterst du darin ?

Dein blockly könnte etwas einfacher/logischer ineinander gesetzt werden aber aber steht da jetzt Pumpe aus nach 15 Minuten und das sollte auch so Geschehen


Sent from my iPhone using Tapatalk

quorle
professional
Beiträge: 122
Registriert: 18.01.2018, 07:23

Re: [Frage] Blockly timeout

Beitrag von quorle » 08.07.2018, 20:25

Linedancer hat geschrieben:Grade mal kontrolliert.
wenn die Pumpe läuft werden 650W gezogen, wenn die Pumpe aus ist stehen, warum auch immer- 1W an. Sollte also eigentlich passen.
Ok, aber wenn die Pumpe läuft, du dann den Hahn zu drehst, läuft die Pumpe ja immer noch solange, bis der werkseitig verbaute druckschalter die Pumpe umschaltet und somit wärst du bei -1. ich weis nicht ob der vergleicher -1 erkennt bei eingestellter 10.

So wie ich das verstanden habe soll die Pumpe 15 Minuten laufen bei einer Leistungsaufnahme größer 20. sollte der Wert kleiner 10 sein, soll der Timeout unterbrochen sein und die Pumpe weiter laufen. Getriggert wird jetzt aktuell die Leistungsaufnahme.


Gesendet von iPhone mit Tapatalk

Linedancer
professional
Beiträge: 229
Registriert: 20.10.2016, 13:21

Re: [Frage] Blockly timeout

Beitrag von Linedancer » 08.07.2018, 23:21

@ Dutchman
Die Pumpe geht nach 15 Minuten wie gewünscht aus. Wenn ich aber den Schlauch vor Ablauf der 15 Minuten zudrehe und der Druckschalter die Pumpe abschaltet will ich den Timeout anhalten, damit der Aktor nicht abgeschaltet wird. und das funktioniert nicht. Der Aktor wird auch in diesem Fall leider abgeschaltet.

@quorle
das habe ich evtel falschgeschrieben es steht natürlich 1W und nicht -1 in dem Datenpunkt.
Das gane soll eine notabschaltung sein, wenn ein Schlauch bricht, sodas maximal noch 15 minute Wasser läuft. Bei kleiner 10W (die Pumpe wurde durch den Duckschalter abgeschaltet) will ich verhindern das der Aktor die Pumpe stromlos macht.
--
Ciao, Gerhard

rantanplan
guru
Beiträge: 1513
Registriert: 10.08.2014, 19:15

Re: [Frage] Blockly timeout

Beitrag von rantanplan » 09.07.2018, 10:33

Hallo Linedancer

Fragen über Fragen ;)

HM Aktor EIN / Schlauch ZU ---> POWER kleinster / größter Wert?
HM Aktor EIN / Schlauch OFFEN ---> POWER kleinster / größter Wert?
Pumpe AN / Schlauch ZU ---> POWER kleinster / größter Wert?
Pumpe AN / Schlauch OFFEN --> POWER kleinster / größter Wert?
Schlauch gerissen / Druckschalter fährt Pumpe runter --> POWER kleinster / größter Wert?

(erinnert mich irgendwie an das Waschmaschinen Script :lol: )

Grüße
Rantanplan
CCU2 (2.31.25) / Host Win10/64 bit(VM) / js-controller v.1.4.2 / JS Script Engine v.3.6.4 / node v.6.12.3 / npm v.3.10.10
Scripten mit Blockly

Linedancer
professional
Beiträge: 229
Registriert: 20.10.2016, 13:21

Re: [Frage] Blockly timeout

Beitrag von Linedancer » 10.07.2018, 08:57

So, hier die Messwerte, hat gestern leider nicht mehr geklappt:

HM Aktor EIN / Schlauch ZU ---> POWER kleinster / größter Wert? 0 bis 1W
HM Aktor EIN / Schlauch OFFEN ---> POWER kleinster / größter Wert? 600 bis 730W
Pumpe AN / Schlauch ZU ---> POWER kleinster / größter Wert? 0 bis 1W
Pumpe AN / Schlauch OFFEN --> POWER kleinster / größter Wert? 600 bis 730W
Schlauch gerissen / Druckschalter fährt Pumpe runter --> POWER kleinster / größter Wert? Genau dieser Zustand ist das Problem. Wenn der Schlauch gerissen ist schaltet der Druckschalter nicht ab da der Druck im System nicht steigt. Das fange ich durch den Timeout ab um die maximale Laufzeit zu begrenzen.

Es soll aber, wenn ich innerhalb der 15 Minuten den Schlauch zu mache der HM Aktor NICHT abschalten. Deswegen soll der Timeout dann abgebrochen werden.
--
Ciao, Gerhard

Linedancer
professional
Beiträge: 229
Registriert: 20.10.2016, 13:21

Re: [Frage] Blockly timeout

Beitrag von Linedancer » 12.07.2018, 11:01

Hallo Uwe,

das war dann wohl der entscheidende Tip.
Ich hab das Bockly umgebaut. Jetzt wird wenn die Pumpe läuft eine Variable auf 1 gesetzt und wenn die Pumpe nicht mehr läuft auf 0.
Diese Variable prüfe ich jetzt alle 15 Minuten wenn die Pumpe läuft. Die ersten Tests sind positiv.
--
Ciao, Gerhard

Antworten