Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cron Probleme beim ändern eines Profils mittels Javascript #153

Closed
ignis-draco opened this issue Nov 16, 2020 · 11 comments
Closed

cron Probleme beim ändern eines Profils mittels Javascript #153

ignis-draco opened this issue Nov 16, 2020 · 11 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@ignis-draco
Copy link

Hi,

erstmal danke für die Arbeit die du in den Adapter gesteckt hast.
Ich bin dabei ein JavaScript zu schreiben um das Profile für jeden Raum automatisch an meinem Schichtplan anzupassen.
Dabei ist mir aufgefallen das wenn ich in einem Profil einen Punkt (Zeit und Temperatur) ändere während der Heatingcontrol Adapter noch läuft es zu einem Problem kommt.
Der Adapter erstellt extrem viele neue Corn Jobs bis "more then 500 cron jobs existing for this adapter, this might be a configuration error! (525)" kommt. (Siehe Log)
Nur ein Neustart vom Adapter führt dazu das die Änderungen im Daten Punkt übernommen wird und keine cron jobs mehr erstellt werden.

Im JavaScript mache ich:
setState("heatingcontrol.0.Profiles.0.Büro.Fri.Periods.0.Temperature", 16) setState("heatingcontrol.0.Profiles.0.Büro.Fri.Periods.0.time", "01:02")

Log Datei: log.txt

Da ich noch dabei bin mich mit IoBroker genauer auseinander zu setzten kann es natürlich gut sein das der Fehler bei mir liegt.
Wenn das der Fall seinen soll bitte ich schon mal um Entschuldigung.

@ignis-draco ignis-draco added the bug Something isn't working label Nov 16, 2020
@ignis-draco ignis-draco changed the title Corn Probleme beim ändern einer Profils mittels Javascript Corn Probleme beim ändern eines Profils mittels Javascript Nov 16, 2020
@rg-engineering rg-engineering changed the title Corn Probleme beim ändern eines Profils mittels Javascript cron Probleme beim ändern eines Profils mittels Javascript Nov 16, 2020
@rg-engineering
Copy link
Owner

Das hatten wir hier schon einmal siehe #143, war damals nicht mehr nachvollziehbar...
Das log hilft mir aber nicht wirklich, bitte vorher den Adapter auf debug stellen und log noch mal posten.
Außerdem verstehe ich nicht, warum man per srcipt die Profile ändern muss. Lege dir doch einfach mehrere Profile an, und wähle sie dann aus, je nachdem, welches du benötigst...

@ignis-draco
Copy link
Author

Hi,

habe den Adapter auf Debug umgestellt. Hier ist das Log: log.txt

Ich hoffe dir nützt der log etwas. Wenn du noch mehr Infos benötigst dann Sag einfach Bescheid.

Zu dem Grund warum ich das machen will:

Ich habe 5 Räume die ich steuern möchte und 6 unterschiedliche Tages Programme(+ Änderungen am Wochenende). Die Teils nur einen Raum oder mehrere betreffen. Und da ich das aktive Profil nur Global setzten kann müsste ich alle Varianten als Profil anlegen(währen bestimmt ca. 15 Profile). Wenn ich dann etwas bei einem Raum ändern möchte müsste ich diesen Punkt in jedem Profile ändern bei dem die default Werte genommen werden.

in meinem Skript habe ich einen default Satz für jeden Raum hinterlegt und durch den Eintrag im Kalender wird ausgewählt
welche Überschreibung Option angeschaltet wird.

Gruß
Arne

@rg-engineering
Copy link
Owner

ich glaube, ich sehe das Problem im log: versuche mal, die setState's in deinem script mit delay (im Sekundenbereich) aufzurufen. Jedes setState startet die Neuberechnung, im vorliegenden Fall wird der Ablauf neunmal gestartet. Jeder Ablauf löscht zwar die vorher angelegten cron - jobs, wenn die aber noch nicht angelegt sind, wenn der nächste Ablauf startet, komme die einfach hinzu. Außerdem: schalte mal das "vom Thermostat bis zum nächsten Profil-Punkt" aus. Das könnte die nächste Schleife generieren... Das baue ich in der 2.x komplett um...

@ignis-draco
Copy link
Author

Hi,

habe die beiden Sachen geändert. Warte 1s nach jedem setSate. Mit einem Raum sieht es jetzt so aus als würde es Funktionieren.
Vielen Dank.

@rg-engineering
Copy link
Owner

okay, dann kommt der bug fix in die 2.x...

@rg-engineering
Copy link
Owner

die 2.x liegt zum testen bereit. Aber Achtung: ist noch alpha-Status, also evtl. nicht fehlerfrei..

@rg-engineering rg-engineering modified the milestones: V2.x, V2.0 Release Dec 31, 2020
@ignis-draco
Copy link
Author

Hi,

Habe die Version 2.0.0. Installiert.
Soweit ich das sehen kann ist das Problem mit dem benötigten delay erst mal weg jedoch ist in den Logs mir noch was aufgefallen.

ChangeStatusCmdList is longer then 30 entries, no new entry allowed -> skipped Schlafzimmer Profiles 18

Ich konnte leider nicht feststellen ob der Eintrag dauerhaft ignoriert wird oder dann später verarbeitet wird.

log.txt

@rg-engineering
Copy link
Owner

ja, das ist wirklich ein Problem. Ich serialisiere die eingehenden Daten in einer Liste. Wenn die Liste länger als 30 Einträge ist, verwerfe ich die nächsten. Wenn also skipped steht, wird wirklich ignoriert. Ich vergößere mal die max. erlaubte Liste...

rg-engineering added a commit that referenced this issue Jan 6, 2021
@ignis-draco
Copy link
Author

Wenn ich das richtig sehe dann wird ja nicht pro set (Uhrzeit und Temperatur) sondern pro Wert ein Eintrag erstellt. Bei Maximal 30 Einträgen und 5 Perioden wären das ja 3 Räume die man setzten kann ohne das es ein Problem gibt.
Wenn ich von meinem System ausgehe müsste die Liste mindestens 50 Einträge aufnehmen können um alle Räumen für einen Tag zu setzten.

Wenn die Liste eine statische Länge haben muss wäre es wohl gut wen man so etwas wie ein almostfull Datenpunkt hätte damit
man mitbekommt wenn die Liste voll ist und dann warten kann.

@rg-engineering
Copy link
Owner

Die Liste ist nicht statisch, sondern dynamisch. Ich hatte nur beim testen gesehen, dass die Liste endlos groß wird, wenn man von außen zu viele Änderungen schreibt. Dann wird die Liste nie abgearbeitet. Deshalb hatte ich ein Limit eingeführt. Ich habe es jetzt mal deutlich vergrößert, kann es aber noch größer machen, wenn nötig...

@rg-engineering
Copy link
Owner

@ignis-draco Können wir das issue hier jetzt schliessen?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants