NEWS
Stoppuhr
-
hi @rantanplan
hier gehts weiter in sachen entwicklung des script
https://forum.iobroker.net/topic/22532/vorlage-blockly-script-für-stoppuhr-laufzeiten-aufzeichen
da könntest du recht haben - probier ich mal -ich glaube timeout brauche ich noch aber die ersten beiden sind sinnlos
-
@liv-in-sky sagte in Stoppuhr:
hi @rantanplan
hier gehts weiter in sachen entwicklung des script
Gerade gefunden und auf "beobachten" gesetzt.
An dem Script läßt sich aber noch einiges optimieren. Bin gespannt wie es weiter geht.
Glückwunsch zur ersten Vorlage -
@Schlagschatten sagte in Stoppuhr:
Sag mal hast du eine Schreibkraft oder mit wieviel Leuten arbeitet ihr da. Nach einer ausgiebigen Pause, die du dir übrigens auch bitte gönnen solltest, habe ich das aktuelle Script jetzt zweimal laufen und ausprobiert. Das neue Script schaue ich mir morgen in Ruhe an.
Bis dahin und gute Nacht
Hallo, kannst du mir bitte das Widget zur Verfügung stellen?
-
@liv-in-sky
So, hier ist der aktuelle Stand in der Vis, hab das Script von gestern Abend, benutzt und bis jetzt läuft es klasse. -
Ist es möglich, das Zeitformat im Script zu ändern, ohne das es Auswirkungen auf die Berechnung hat?
-
freut mich das es funktioniert
dein widet ist auch gut angekommen
die mit pfeilen gekentzeichneten kannst du gerne ändern - spielst du jedoch mal ein update des scripts auf, wird das wieder geändert
-
stellst du irgendwelche performance probleme fest ?
deine vis-anzeige sieht echt gut aus
-
Leistungseinbuße habe ich eigentlich nicht. ab und an verabschiedet der Pi sich, wenn ihm etwas nicht passt. Ansonsten läuft es gut.
Bitte schreibe Kommentare in die Scripte, damit man es nachvollziehen kann.
-
@Schlagschatten in der offiziellen version sind maßig kommentare
-
in deinem beispiel vom anderem thread, benutzt du z.b einen trigger in einem trigger - sowas macht man nicht
bei meinem script siehst du, das alles, was triggert, einen eigenen block darstellt. deshalb sieht das ein wenig kompliiert aus, weil diese blöcke letztich auf einander reagieren müssen - deshalb macht es keinen sinn, in mein script einzugreifen
die einzigen eingreifmöglichkeiten sind unter dem datenpunkt "steuern" zu sehen - stopp, reset und start - alles andere sollte nicht genutzt werden
alles andere macht mein script - die trigger (rote bausteine ) sind sozusagen die schittstellen zu meinem script.
du kannst es als eine blackbox sehen - diese hat drei eingänge (gas, bremse,handbremse) und einige ausgänge (geschwindigkeit, kilometerstand, ...)
die ausgänge kannst du weiterverarbeiten die anderen steuern das ganze
du solltest ein eigenes script bauen, welches ähnlich aufgebaut ist. irgendetwas triggert dein script - dieses benutzt wiederum mein script ) start,stopp,reset) und dein script reagiert dann
-
Das ist halt das Problem, da ich dein Script nur zu 50% verstehe. Daher auch die Bitte um Kommentare, um etwas mitzunehmen. Ich nutzte iobroker erst seid 6 Monaten und man muss sich ganz schön durchbeißen. Visualisierungen, Node-Red, Javascript, linux gibt immer was Neues. Leider gibt es wenig deutsche Manuell, das meiste ist hier im Forum lesen. Mit den trigger ist mir auch schon aufgefallen. Deine Methode macht mehr Sinn vom Aufbau.
Zum Beispiel komme ich damit nicht zurecht
-
Datum-Objekt wandelt das aktuell Datum in eine rechenbare Zahl um. Nach String schreibt den aktuellen Zeitwert, ohne das die Zeit weiterläuft. ??????
-
das ist ein funktion - verwendet man, wenn ein script etwas öfters macht und den vorgang somit öfters braucht. damit spart man sich jedesmal alles doppelt zu schreiben - stattdessen wird das aufgerufen. dieses zeitberechnen wird 2 mal im script gebraucht und nur einmal geschrieben.
es gibt auch funktionen, denen übergibt man einen bestimmten wert und diesen verwendet dann die funktion um damit etwas zu machen - sie könne auch ein ergebnis zurückgeben, mit dem man dann weiterarbeitet - kommt in meinem beispiel nicht vor.
habe es vorher als blackbox erklärt - die funktion arbeitet genauso innerhalb eines scripts
das lila "zeitberechnen" wird zweimal im script benutzt aber nur einmal geschrieben
das war eine gute frage
-
Das ich das richtig verstehe,
Der Zeitplan führt alle 23sek die Funktion Zeitberechnung aus.
Bei Start
Bei stop
-
Die Timeouts sind grundsätzlich nur für die zeitversetzte Rechnung...?
-
@Schlagschatten ja genau wie du sagst - alle 23 (oder was man auch einstellt (ist egal - kannst auch eine stunde einstellen) - da bei stopp sowieso gerechnet wird - und alle datenpunkte geschrieben werden - man konnte auch das zeitinterval von 23 ausschalten - aber dann hätte man nichts für die vis ! start - stop - die datenpunkte werden geschrieben das wärs dann - aber nur wenn es eine reine stoppuhr sein soll - vielleicht, möchte man jede 5 minuten etwas anderes triggern - dann überwacht man den minutenwert.
das mit den timeouts ist eine besonderheit - in kurz:
normalerweise kennt man programme, die eins nach dem anderen abarbeiten - dadurch weiß man immer, was wann passiert. da iobroker aber auf schnelle abarbeitung ausgelegt ist, kannst du nicht genau sagen, was wann passiert - es wird alles gleichzeitig berechnet (asynchorne bzw. synchrone programmierung) btw. geschaltet - es gibt ohne blockly noch sowas wie einen callback - die richtigen profis nutzen das in javascript - habe sowas in blockly noch nicht gesehendie timeouts braucht man deshalb für verschiedene sachen
- um sicherzustellen, dass eine brechnung erst passiert, wenn etwas anderes abgearbeitet ist.
- oder für einen zeitversetzten schaltvorgang
dein letztes k(leines) bild weißt darauf hin, dass die version älter ist - in der jetztigen version ist bei Zeitberechnung kein timeout mehr - macht manchmal einen unterschied
in manchen fällen, braucht man dann auch das "stop timeout" blockly - wird etwas unterbrochen, das kurz vorher einen timeout gesetzt bekommen hatte z.b. vor einem schaltvorgang oder einer berechnung -und dieser schaltvorgang nicht mehr ausgeführt werden soll, stoppt man den timeout und es wird nicht mehr geschalten/berechnet
-
@Schlagschatten sagte in Stoppuhr:
Datum-Objekt wandelt das aktuell Datum in eine rechenbare Zahl um. Nach String schreibt den aktuellen Zeitwert, ohne das die Zeit weiterläuft. ??????
ich bin nicht der profi auf diesem gebiet - dies ist mein zweites veröffentliche script - es gibt bedeutend bessere programmierer im forum, daher weiß ich nicht, ob ich wirklich alles perfekt programmiere (es gibt einen programmierer im forum, der nennt sich paul53 - der schreibt manchmal eine zeile als code, wofür ich eine seite benötige:-)
zurück zu diesem beispiel:
ich will am ende ein datum in der vis ausgeben (das war mein ziel)- - das geht nur über string! deshalb speichere ich "anfang" gleich mal als string
"erststart" und anfang sollen den selben wert haben - also muss ich wieder zurückwandeln, da eine umwandlung in ein datum eine zahl braucht - könnte man sicher anders lösen - aber das script hat sich halt schnell entwickelt, weil es komplizierter geworden ist, als ich dachte - wenn du mal ein solches script entwirfst, wirst du bald feststellen, dass es momente des "braindead!" gibt und man froh um die richtige funktion ist, anstatt alles perfekt zu machen. es gibt nicht umsonst die versionsnummernhier noch etwas übersicht:
-
@Schlagschatten
habe es nochmnal überprüft - man bekommt eine jacascript meldung wenn man das aktuelle datum in eine zahl schreiben will - obwohl es eine zahl istgeht nicht ohne warnung wenn der string-kovert nicht dabei ist
-
So langsam komme ich dahinter, die Entwicklung ist wirklich interessant.
Zur Aktualität deiner Scripte: Habe das Script aus dem 1 Beitrag deines Threads , gibt es noch irgenswelche Änderungen?
-
habe gerade ein update in den ersten post geladen
gibt einen weiteren datenpunkt - Erststart - wird im anderen thread erklärt
das neuste script hat ganz oben einen kommentar mit version 1.1