NEWS
Stoppuhr
-
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
-
Prima, dann warte ich noch und teste erstmal das aktuelle Script.
Danke für die Mühe -
Zur Info: Habe das Script angepasst und es startet bei mir immer Zeitversetzt zwischen 10 und 30 sek.
Die Zeit selbst läuft richtig. -
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 knopfes gibt noch 2 neue datenpunkte: "reset" als logiktyp und "berechnen" als zahlentyp
widget:
script:
nach dem import bitte wieder alle datenpunkte einrichten (sorry dafür)
ich hoffe, es gibt keine weiteren großen updates mehr -
@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.
- Aktuelle Werte in lokale Varible einlesen. (Funktion)
- Mit den lokalen Variablen arbeiten
- 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.
-
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
-
@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.
- Aktuelle Werte in lokale Varible einlesen. (Funktion)
- Mit den lokalen Variablen arbeiten
- 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
-
@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.
-
@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)
-
das ist kein kein baustein sondern ein js-script eingebundenen in blockly
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
-
@liv-in-sky sagte in Stoppuhr:
das ist kein kein baustein sondern ein js-script eingebundenen in blockly
Woher sollte ich das wissen?
Vielleicht noch ein Tipp? Wenn Du "etwas tun3" anklickst, kannst Du den Funktionsnamen in etwas "sprechendes" umbenennen. Kann man auch im Nachhinein ändern.Datenpunkte die in einem Script neu anlegt, kann man nicht direkt beim ersten Start benutzen!
ioBroker braucht dazu etwas Zeit.
Stript Start, Script Stop, Script Start. -
Moin,
das war wohl wirklich eine Menge Arbeit. Habe das Script angepasst und läuft. Start/Stop und Reset auch. Prima und danke dafür. Da ich gestern das alte Script getestet habe und sich mein Pi bei den ersten beiden Versuchen verabschiedet hat, und ich im schlimmsten Fall bis zu 8 Zähler gleichzeitig laufen lasse möchte, denke ich das es Probleme mit der Performance geben könnte.
Der dritte Versuch funktionierte bis jetzt tadelos, bis auf auf den Zeitversatz von 10 sek., was nicht so wichtig ist. s.h. bildVielleicht könnte man das Ganze ein wenig abspecken. Z.B. die Ausgabehilfen reduzieren, und nur das Start Datum/Zeit anzeigen lassen. Leider bin ich keine große Hilfe, da ich das Script nicht komplett verstehe.
Schaut doch bitte mal das Script von mir an, vielleicht könnt ihr mir sagen, was man besser machen kann. Das Script funktioniert soweit, nur Zeit läuft nach ca. 45min langsamer.
Vg Chris
-
Frage: Woher kommt die Meldung?
-
-
@Schlagschatten sagte in Stoppuhr:
Frage: Woher kommt die Meldung?
das sind fehlermeldungen für mich zum debuggen (fehlersuche)
geh mit der rechten maustaste darauf und wähle deaktivieren aus - dann ist es weg - ich mache solche meldungen immer mit warnung oder error - weil dann farbig im log und einfacher zum finden - es sind aber keine warnungen oder fehler
-
nur zur klarstellung
wenn du mehrere zähler benutzen willst, brauchst du für jeden zaehler ein eigenes script als stoppuhr
ich programmiere gerade das automatische anlegen von den datenpunkten - dann kann viel einfacher mehrere solcher scripte installieren
update kommt bald
-
Ok, die Meldungen kommen von dir. Habe die Scripte schon angelegt, 8 für jeden Zähler. Da der Pi gerade wieder abgestürtzt ist, mache ich mir wirlich Sorgen.
-
ich muss mmal einen überblick bekommen
du nutzt 8 von meinen sripts !
und du hast 8 skripte, die das ganze steuern - oder hast du meine scripts manipuliert ?
-
Ich habe mit meinem Script angefangen und dementsprechen auch Scripte angelegt. Nun habe ich bei 2 Zählern das Script von dir am laufen. Erster Zähler das Script von gestern und der zweite Zähler von heute. Z.z. laufen nur die Scripte von dir. Und ich kann mir halt nicht vorstellen, das die Leistung ausreicht.
-
wenn das so ist - bitte ändere die anlaufzeit, damit nicht alle gleichzeitig zu rechnen beginnen
gehe in den zeitplan und ändere die 30 sekunden auf eine unterschiedliche primzahl z.b.
also einer ist auf "alle 23 sekunden" der nächste auf " alle 29" dann 37, 41, 43, 47,53 - damit hast du keine überschneidungen bei der berechnung mehr
und bitte erkläre mir, was du da eigentlich machst - nur um eine vorstellung zu bekommen, was das für wasserstände sind