NEWS
Stoppuhr
-
@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
-
@liv-in-sky sagte in Stoppuhr:
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
Welcher Datenpunkttyp hat Erststart?
-
string - da er ein datum anzeigen soll