Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Stoppuhr

    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

    Stoppuhr

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Schlagschatten last edited by

      @Schlagschatten

      was meinst du damit - nicht sauber

      1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @Schlagschatten last edited by liv-in-sky

        @Schlagschatten

        die sekunden werden eh nur alle 30 sek upgedated - also 0 und 30 in der anzeige - erst bei stop werden die aktuellen sek angezeigt

        die beiden schalter haben als datenpunkt vis.0. .... da, glaube ich, sollte noch ein anderer datenpunkt rein .z.b der start und stop datenpunkt - reset ist stop

        schaut doch schon ganz gut aus - hab irgendwelche bilder für die schalter von mir genommen

        Image 11.png

        1 Reply Last reply Reply Quote 0
        • S
          Schlagschatten last edited by

          Reset stellt die Zahlen auf Null. Mit Stop soll die Zeit nur angehalten werden und mit Start weiterlaufen. Stoppe mal bitte die Zeit, die ersten beiden Minuten werden nicht angezeigt und sind nicht syncron.

          1 Reply Last reply Reply Quote 0
          • S
            Schlagschatten last edited by

            3.PNG

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky last edited by

              was nicht geht ist das wieder aufnehmen der zeit - gestoppt ist gestoppt - mal sehen, ob ich da noch was machen kann - hab ich nicht daran gedacht, weil das mit der sommerzeit so aufwendig war

              wegen dem sauber - es gibt nochmal eine änderung im script - ich zeige es dir - weil du sonst beim import wieder alle datenpunkte machen musst. ich füge aber das aktuelle script noch mal ein manchmal - wegen laufzeit - stimmt bei mir eine sekunde nicht .

              zum ändern

              das eine blockly element steuern "Momentan" mit verzögerung hinzufügen

              Image 12.png

              das ganze script (mit dieser änderung)

              script-stoppuhr.txt

              in diesem beispiel stimmt es auf die sekunde

              Image 13.png

              1 Reply Last reply Reply Quote 0
              • S
                Schlagschatten last edited by

                Muss mich korrigieren, Minute eins wird doch angezeigt, allerdings startet das Script zeitversetzt.

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Schlagschatten last edited by

                  @Schlagschatten

                  mit der letzten änderung ist nicht mehr zeitversetzt

                  1 Reply Last reply Reply Quote 0
                  • S
                    Schlagschatten last edited by

                    Prima das sieht schon alles ganz gut aus. Leider verstehe ich dein Script nicht komplett. Für ein paar Erläuterungen, wäre ich echt dankbar.

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @Schlagschatten last edited by

                      @Schlagschatten

                      mach ich gern - könntest du ein wenig eingrenzen, was du wissen möchtest

                      1 Reply Last reply Reply Quote 0
                      • S
                        Schlagschatten last edited by

                        Ich scheitere gerade an der Änderung. Die Timeouts sind auch neu angelegt?

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @Schlagschatten last edited by

                          @Schlagschatten

                          wenn es nicht heute sein muss:

                          warte noch ein wenig - ich konnte die laufzeit und den performancegebrauch noch etwas reduzieren - außerdem überlege ich noch an dem stopp und der wiederaufnahme. das werden dann mehrere änderungen

                          dann ist es sinnvoller, wenn du noch mal alles importierst und die datenpunkte setzt - da übersieht man dann weniger

                          ist das ok für dich

                          1 Reply Last reply Reply Quote 0
                          • S
                            Schlagschatten last edited by

                            Prima, dann warte ich noch und teste erstmal das aktuelle Script.
                            Danke für die Mühe

                            1 Reply Last reply Reply Quote 0
                            • S
                              Schlagschatten last edited by

                              Zur Info: Habe das Script angepasst und es startet bei mir immer Zeitversetzt zwischen 10 und 30 sek.
                              Die Zeit selbst läuft richtig.

                              1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky last edited by

                                @Schlagschatten

                                das ist richtig so -. ich wollte vermeiden, das es ein script gibt, das jede sekunde etwas ausführen muss - alle 30 sekunden wird die anzeige upgedatet und berechnet - braucht man die sekunden anzeige nicht wirklich, könnte man das auch auf alle 1 oder 2,5 minuten stellen - berechnung und die letzte anzeige ist immer richtig - kommt auf die benutzung an

                                habe jetzt einen scriptversuch mit wiederaufnahme der startfunktion - kann man unendlich oft ausführen (start-stopp - start-stopp - ....). die zeiten sollten addiert werden
                                für den reset muss vorher stopp gedrückt werden und dann erst der reset knopf

                                es gibt noch 2 neue datenpunkte: "reset" als logiktyp und "berechnen" als zahlentyp

                                Image 14.png

                                widget:

                                widget.txt

                                script:

                                script-stoppuhr.txt

                                nach dem import bitte wieder alle datenpunkte einrichten (sorry dafür)
                                ich hoffe, es gibt keine weiteren großen updates mehr

                                rantanplan 1 Reply Last reply Reply Quote 0
                                • rantanplan
                                  rantanplan @liv-in-sky last edited by rantanplan

                                  @liv-in-sky Hallo

                                  Habe mir gerade mal das Script importiert. Fleißig, fleißig☺

                                  Mir ist aufgefallen, dass da noch ein Block nicht verbunden ist.
                                  Bei so umfangreichen und in Blockly dann recht unübersichtlichen Scripten, habe ich mir angewöhnt das "Prüfe Icon" (Flagge) häufiger zu klicken. Da werden dann solche "Leichen" angezeigt.

                                  Dann steuerst Du die Datenpunkte immer direkt und davon eine ganze Menge, die dann noch teilweise von einander abhängig sind. Dazu jede Menge Timer und Verzögerungen.
                                  Man sollte bei solchen Sachen immer daran denken das JavaScript asyncron läuft!
                                  "steuere" wartet immer auf eine Bestätigung und während auf die Bestätigung gewartet wird, werden die nächsten Befehle schon ausgeführt.
                                  Da können die wildesten Sachen passieren und eine Fehlersuche kann einen dann wahnsinnig machen.

                                  Es ist zwar am Anfang viel Arbeit aber lege doch für die Datenpunkte jeweils eine lokale Variablen an.

                                  1. Aktuelle Werte in lokale Varible einlesen. (Funktion)
                                  2. Mit den lokalen Variablen arbeiten
                                  3. Lokale Variablen in Datenpunkte schreiben. (Funktion)

                                  Das ist hinterher viel leichter zu warten und Du kannst Dir die ganzen Verzögerungen sparen.

                                  Verstehe das bitte als Tipp und nicht als Kritik.

                                  liv-in-sky 2 Replies Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @rantanplan last edited by

                                    i @rantanplan

                                    bin immer dankbar für wertvolle tipps ! werd das mal in ruhe anschauen

                                    im moment versuche ich das anlegen der datenpunkte hinzubekommen - funktioniert noch nicht richtig, die erzeugten datenpunkte machen irgendwelche probleme

                                    magst du mal drüber schauen - besonders die "numbers" machen ärger

                                    createState('STOPPUHR.Werte.Sekunden', { name: 'Sek', desc: 'Sek', type: 'number', unit: 'Sek' });
                                    createState('STOPPUHR.Werte.Minuten', { name: 'Minuten', desc: 'Sek', type: 'number', unit: 'Min' });
                                    createState('STOPPUHR.Werte.Stunden', { name: 'Stunden', desc: 'Sek', type: 'number', unit: 'Std' });
                                    createState('STOPPUHR.Werte.Tage', { name: 'Tage', desc: 'Sek', type: 'number', unit: 'Day' });
                                    createState('STOPPUHR.Berechnen', { name: 'Berechnen', desc: 'Sek', type: 'number', unit: 'mSek' });

                                    createState('STOPPUHR.Steuerung.Reset', { name: 'Reset', desc: 'Reset', type: 'boolean' });
                                    createState('STOPPUHR.Steuerung.Start', { name: 'Start', desc: 'Start', type: 'boolean' });
                                    createState('STOPPUHR.Steuerung.Stopp', { name: 'Stopp', desc: 'Stopp', type: 'boolean' });

                                    createState('STOPPUHR.Anfang', { name: 'Anfang', desc: 'Anfang in ms', type: 'string' })
                                    createState('STOPPUHR.Ausgabehilfe', { name: 'Ausgabehilfe', desc: 'Ausgabehilfe', type: 'string' })
                                    createState('STOPPUHR.Ende', { name: 'Ende', desc: 'Ende', type: 'string' })
                                    createState('STOPPUHR.Momentan', { name: 'Momentan', desc: 'Momentan', type: 'string' })

                                    rantanplan 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @rantanplan last edited by

                                      @rantanplan sagte in Stoppuhr:

                                      @liv-in-sky Hallo

                                      Habe mir gerade mal das Script importiert. Fleißig, fleißig☺

                                      Mir ist aufgefallen, dass da noch ein Block nicht verbunden ist.
                                      Bei so umfangreichen und in Blockly dann recht unübersichtlichen Scripten, habe ich mir angewöhnt das "Prüfe Icon" (Flagge) häufiger zu klicken. Da werden dann solche "Leichen" angezeigt.

                                      Dann steuerst Du die Datenpunkte immer direkt und davon eine ganze Menge, die dann noch teilweise von einander abhängig sind. Dazu jede Menge Timer und Verzögerungen.
                                      Man sollte bei solchen Sachen immer daran denken das JavaScript asyncron läuft!
                                      "steuere" wartet immer auf eine Bestätigung und während auf die Bestätigung gewartet wird, werden die nächsten Befehle schon ausgeführt.
                                      Da können die wildesten Sachen passieren und eine Fehlersuche kann einen dann wahnsinnig machen.

                                      Es ist zwar am Anfang viel Arbeit aber lege doch für die Datenpunkte jeweils eine lokale Variablen an.

                                      1. Aktuelle Werte in lokale Varible einlesen. (Funktion)
                                      2. Mit den lokalen Variablen arbeiten
                                      3. Lokale Variablen in Datenpunkte schreiben. (Funktion)

                                      Das ist hinterher viel leichter zu warten und Du kannst Dir die ganzen Verzögerungen sparen.

                                      Verstehe das bitte als Tipp und nicht als Kritik.

                                      ich will sicher sein, das weitergezählt wird, wenn script neustart oder iobroker neustart gemacht wird -

                                      aber ich schau nochmal ob ich mehr variablen nutzen kann

                                      rantanplan 1 Reply Last reply Reply Quote 0
                                      • rantanplan
                                        rantanplan @liv-in-sky last edited by

                                        @liv-in-sky sagte in Stoppuhr:

                                        ich will sicher sein, das weitergezählt wird, wenn script neustart oder iobroker neustart gemacht wird -

                                        Das macht keinen Unterschied. Am Grundablauf ändert sich ja nichts. Der wird nur sicherer abgearbeitet.

                                        1 Reply Last reply Reply Quote 0
                                        • rantanplan
                                          rantanplan @liv-in-sky last edited by

                                          @liv-in-sky sagte in Stoppuhr:

                                          magst du mal drüber schauen - besonders die "numbers" machen ärger

                                          Ich habe den neuen Baustein noch nicht☺ und deshalb auch noch nicht testen können.
                                          Da musste aufpassen, wenn Du den in Deinem Script einsetzen willst. Der ist noch nicht offiziell und viele haben den noch nicht.
                                          Nimm doch das Beispiel hier aus dem Forum. (Ich weis jetzt nicht mehr vom wem es ist)

                                          <xml xmlns="http://www.w3.org/1999/xhtml">
                                            <variables>
                                              <variable type="" id="FBRMInq]cmeK@PIx26k-">Name</variable>
                                              <variable type="" id="b%fh+m8|cc?7K@#Bb(v=">Initialisierung</variable>
                                              <variable type="" id="EVB$-0(O@vC6ip%213,5">Beschreibung</variable>
                                              <variable type="" id="_J*8+6%%,[BJjhVu8jxZ">Type</variable>
                                              <variable type="" id="_F3NI18eUQsGs2qt.T]">Rolle</variable>
                                              <variable type="" id="J=uVGW;P^k@A!vhBphUm">smartName</variable>
                                            </variables>
                                            <block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="-337" y="13">
                                              <mutation statements="false">
                                                <arg name="Name" varid="FBRMInq]cmeK@PIx26k-"></arg>
                                                <arg name="Initialisierung" varid="b%fh+m8|cc?7K@#Bb(v="></arg>
                                                <arg name="Beschreibung" varid="EVB$-0(O@vC6ip%213,5"></arg>
                                                <arg name="Type" varid="_J*8+6%%,[BJjhVu8jxZ"></arg>
                                                <arg name="Rolle" varid="_F3NI18eUQsGs2qt.T]"></arg>
                                                <arg name="smartName" varid="J=uVGW;P^k@A!vhBphUm"></arg>
                                              </mutation>
                                              <field name="NAME">Variablen anlegen</field>
                                              <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlLA0KICBzbWFydE5hbWU6IHNtYXJ0TmFtZQ0KfSk7DQo=</field>
                                              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                            </block>
                                            <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-337" y="62">
                                              <mutation name="Variablen anlegen">
                                                <arg name="Name"></arg>
                                                <arg name="Initialisierung"></arg>
                                                <arg name="Beschreibung"></arg>
                                                <arg name="Type"></arg>
                                                <arg name="Rolle"></arg>
                                                <arg name="smartName"></arg>
                                              </mutation>
                                              <value name="ARG0">
                                                <block type="text" id="nSr7Hq~;DUU2#lB+Yj:}">
                                                  <field name="TEXT">MyVars.Test</field>
                                                </block>
                                              </value>
                                              <value name="ARG1">
                                                <block type="text" id="xlqa55O11o@{+#@Yj;%">
                                                  <field name="TEXT">true</field>
                                                </block>
                                              </value>
                                              <value name="ARG2">
                                                <block type="text" id="yEhqZqxh*}Ip8?yzOW7I">
                                                  <field name="TEXT">neuer Datenpunkt A</field>
                                                </block>
                                              </value>
                                              <value name="ARG3">
                                                <block type="text" id="sYAGk@@-Fz^fIDONX!/i">
                                                  <field name="TEXT">boolean</field>
                                                </block>
                                              </value>
                                              <value name="ARG4">
                                                <block type="text" id="/t]#6;-K%9u+eD1jG09@">
                                                  <field name="TEXT">button</field>
                                                </block>
                                              </value>
                                              <value name="ARG5">
                                                <block type="text" id="f?//#sV0P}x+|S.8nzy">
                                                  <field name="TEXT">SmartName A</field>
                                                </block>
                                              </value>
                                            </block>
                                          </xml>
                                          
                                          <xml xmlns="http://www.w3.org/1999/xhtml">
                                            <variables>
                                              <variable type="" id="FBRMInq]cmeK@PIx26k-">Name</variable>
                                              <variable type="" id="b%fh+m8|cc?7K@#Bb(v=">Initialisierung</variable>
                                              <variable type="" id="EVB$-0(O@vC6ip%213,5">Beschreibung</variable>
                                              <variable type="" id="_J*8+6%%,[BJjhVu8jxZ">Type</variable>
                                              <variable type="" id="_F3NI18eUQsGs2qt.T]">Rolle</variable>
                                              <variable type="" id="J=uVGW;P^k@A!vhBphUm">smartName</variable>
                                            </variables>
                                            <block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="-337" y="13">
                                              <mutation statements="false">
                                                <arg name="Name" varid="FBRMInq]cmeK@PIx26k-"></arg>
                                                <arg name="Initialisierung" varid="b%fh+m8|cc?7K@#Bb(v="></arg>
                                                <arg name="Beschreibung" varid="EVB$-0(O@vC6ip%213,5"></arg>
                                                <arg name="Type" varid="_J*8+6%%,[BJjhVu8jxZ"></arg>
                                                <arg name="Rolle" varid="_F3NI18eUQsGs2qt.T]"></arg>
                                                <arg name="smartName" varid="J=uVGW;P^k@A!vhBphUm"></arg>
                                              </mutation>
                                              <field name="NAME">Variablen anlegen</field>
                                              <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlLA0KICBzbWFydE5hbWU6IHNtYXJ0TmFtZQ0KfSk7DQo=</field>
                                              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                            </block>
                                            <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-337" y="62">
                                              <mutation name="Variablen anlegen">
                                                <arg name="Name"></arg>
                                                <arg name="Initialisierung"></arg>
                                                <arg name="Beschreibung"></arg>
                                                <arg name="Type"></arg>
                                                <arg name="Rolle"></arg>
                                                <arg name="smartName"></arg>
                                              </mutation>
                                              <value name="ARG0">
                                                <block type="text" id="nSr7Hq~;DUU2#lB+Yj:}">
                                                  <field name="TEXT">MyVars.Test</field>
                                                </block>
                                              </value>
                                              <value name="ARG1">
                                                <block type="text" id="xlqa55O11o@{+#@Yj;%">
                                                  <field name="TEXT">true</field>
                                                </block>
                                              </value>
                                              <value name="ARG2">
                                                <block type="text" id="yEhqZqxh*}Ip8?yzOW7I">
                                                  <field name="TEXT">neuer Datenpunkt A</field>
                                                </block>
                                              </value>
                                              <value name="ARG3">
                                                <block type="text" id="sYAGk@@-Fz^fIDONX!/i">
                                                  <field name="TEXT">boolean</field>
                                                </block>
                                              </value>
                                              <value name="ARG4">
                                                <block type="text" id="/t]#6;-K%9u+eD1jG09@">
                                                  <field name="TEXT">button</field>
                                                </block>
                                              </value>
                                              <value name="ARG5">
                                                <block type="text" id="f?//#sV0P}x+|S.8nzy">
                                                  <field name="TEXT">SmartName A</field>
                                                </block>
                                              </value>
                                            </block>
                                          </xml>
                                          

                                          1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky last edited by

                                            @rantanplan

                                            das ist kein kein baustein sondern ein js-script eingebundenen in blockly

                                            Image 1.png

                                            unter objekte werden sie angezeigt - aber z.b die vis findet sie nicht, obwhl ich den datenpunktpfad hinein kopiert habe - auch das script macht einen fehler mit missing datenpunkt

                                            Image 3.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            547
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            130
                                            10192
                                            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