NEWS

  • Forum Testing Most Active Global Moderator Administrators

    In den letzten Tagen habe ich einige seltsame Begegnungen mit Javascript gehabt.

    Ich habe meinen Pool fertig machen wollen und wollte die Sonne der letzten Tage ausnutzen das Wasser schon mal langsam von knapp über dem Gefrierpunkt auf eine brauchbare Temperatur zu bringen.

    Gut - ich habe auch einiges an Sicherheits- / Komfortfunktionen eingebaut.
    So soll die Pumpe nur laufen wenn die Sonne in einem bestimmten Winkel auf die Garage scheint, so dass auch der Kollektor beschienen wird.
    Durch ein Problem mit der js.0 Instanz hatte ich letzten Herbst alle Scripte auf js.1 umgezogen und natürlich die Datenpunkte nicht angepasst.

    Das habe ich jetzt gemacht - und traue meinen Augen nicht: am frühen Nachmittag steht die Sonne angeblich bei 28° Azimut und dafür etwa 85° Elevation. (Das Skript auf der CCU lieferte 188° Azimut und etwa 47° Elevation)

    Ich hatte wirklich alles versucht: Die Koordinaten waren korrekt in der Instanz angelegt. Mit und ohne "Systemeinstellungen verwenden" - nach jeder Änderung zur Sicherheit auch das Skript neu gestartet - es blieb bei den ominösen Werten (Das Skript ist von hier erstellt: 06.07.2015 nach ioBroker Forum)
    entnervt habe ich erst mal auf die Datenpunkte von dem CCU-Skript umgestellt.
    abends hatte ich dann noch weiter gesucht, das Skript meckerte 'suncalc' an, dass es das nicht finden könne - war aber in der Instanz eingetragen.
    Gelöscht, neu eingetragen - wurde immer noch angemeckert aber jetzt lief es 😵

    Ein weiters Phänomen betrifft eine Meldung über den Druck im Sandfilter, der bei Anfahren überprüft wird, da sich ab und zu der Filterkorb im Skimmer verklemmt und dann die Pumpe trocken laufen würde.
    Pumpenwaechter.png

    Eigentlich soll das Log bei erreichen des Mindestdrucks nur einmal geschrieben werden und dann der Block "stop zyklische Ausführung" greifen -tut es aber nicht.

    Pumpenlog.png

    Auch hier mehrfach Änderungen eingebracht - da klappte es.
    Heute morgen jedoch wieder nicht.
    Ab dem x-ten Versuch lief es auf einmal.

    Hat da jemand hilfreiche Informationen bitte?

    js-controller: 2.2.8
    Admin: 4.0.2
    javascript: 4.4.2

    Danke für jede Hilfe


  • @Homoran sagte:

    das Skript meckerte 'suncalc' an, dass es das nicht finden könne

    Der Script-Editor meckert alle NPM-Module an, was man ignorieren sollte.

  • Forum Testing Most Active Global Moderator Administrators

    @paul53 sagte in Javascript spinnt:

    @Homoran sagte:

    das Skript meckerte 'suncalc' an, dass es das nicht finden könne

    Der Script-Editor meckert alle NPM-Module an, was man ignorieren sollte.

    das weiß ich inzwischen auch 😉

    trotzdem hat das Löschen und wieder anlegen scheinbar geholfen. (oder das mehrfach speichern, oder der mehrfache restart der Instanz, oder....)
    Oder morgen läuft es wieder schief


  • @Homoran sagte:

    trotzdem hat das Löschen und wieder anlegen scheinbar geholfen.

    Das NPM-Modul "suncalc" ist Bestandteil des Javascript-Adapters und muss (sollte) nicht zusätzlich installiert werden (intern wird das Modul "suncalc2" verwendet).

  • Forum Testing Most Active Global Moderator Administrators

    @paul53
    Danke für die Info
    Werde es wieder rausnehmen, aber ich glaube nicht, dass es daran lag, dass ich irgendwo in der Nähe des Äquators angesiedelt wurde

  • Forum Testing Most Active Global Moderator Administrators

    Ich habe da gerade noch etwas beobachtet, weiß nicht ob das relevant ist.

    Nachdem ein weiteres Skript nicht so macht wie ich will, habe ich den Teil dort deaktiviert und in einem extraskript neu angelegt zum Testen.

    Jetzt erscheint im log:

    javascript.0	2020-04-11 15:29:19.933	info	(3120) script.js.Pool.Tastertest: registered 1 subscription and 0 schedules
    javascript.0	2020-04-11 15:29:19.931	info	(3120) Start javascript script.js.Pool.Tastertest
    javascript.1	2020-04-11 15:29:19.771	info	(6815) Stop script script.js.Pool.Tastertest
    javascript.0	2020-04-11 15:29:19.770	info	(3120) Stop script script.js.Pool.Tastertest
    javascript.0	2020-04-11 15:29:02.748	info	(3120) script.js.Pool.Tastertest: registered 1 subscription and 0 schedules
    javascript.0	2020-04-11 15:29:02.746	info	(3120) Start javascript script.js.Pool.Tastertest
    javascript.1	2020-04-11 15:29:02.612	info	(6815) Stop script script.js.Pool.Tastertest
    javascript.0	2020-04-11 15:29:02.611	info	(3120) Stop script script.js.Pool.Tastertest
    

    Natürlich existiert dieses Skript nur einmal (irrtümlich unter js.0)

    Ist es normal, dass es bei beiden Instanzen auftritt?
    und zwar immer nur das stop

    EDIT:
    habe das Skript jetzt auf js.1 verschoben, jetzt kommt auch nur noch was bei js.1 im log


  • @Homoran sagte:

    Ist es normal, dass es bei beiden Instanzen auftritt?
    und zwar immer nur das stop

    Ja, leider.

    15:46:27.553	info	javascript.0 (1868) Stop script script.js.common.Edit
    15:46:27.554	info	javascript.1 (1996) Stop script script.js.common.Edit
    15:47:19.245	info	javascript.0 (1868) Stop script script.js.common.Edit
    15:47:19.246	info	javascript.1 (1996) Stop script script.js.common.Edit
    15:48:09.309	info	javascript.0 (1868) Stop script script.js.common.Edit
    15:48:09.310	info	javascript.1 (1996) Stop script script.js.common.Edit
    
  • Forum Testing Most Active Global Moderator Administrators

    @Homoran sagte in Javascript spinnt:

    js-controller: 2.2.8
    Admin: 4.0.2
    javascript: 4.4.2

    Habe jetzt das Blockly auf eine andere Installation kopiert, da läuft es einwandfrei 😢

    js-controller: 2.2.7
    Admin: 3.7.8
    javascript: 4.3.4

    Danach nochmals die Instanzen auf dem produktiven System neu gestartet - ohne Erfolg
    Dort werden nicht einmal mehr die debug-Ausgaben getätigt

  • Forum Testing Most Active Global Moderator Administrators

    Gestern lief das Skript (Blockly) eine ganze Zeit absolut problemlos.

    Auf einmal fiel wieder das "stop zyklische Ausführung" über extrem viele Zyklen aus.
    Mehrfaches Neustarten des Skripts hatte nicht geholfen

    Erst nach mehrfachem neustart der Pumpe lief es dann.

    Es will einfach nicht in meinen Kopf.
    um die Meldung ausgeben zu können durchläuft das Blockly doch das selbe "SONST FALLS" in der auch die zyklische Ausführung beendet werden müsste:
    Bild Text

  • Forum Testing Most Active Global Moderator Administrators

    Langsam verzweifle ich.

    Nachdem ich zuerst immer den Fehler bei mir gesucht hatte, habe ich jetzt seit einigen Tagen nichts mehr am Blockly geändert.
    Dann habe ich es immer mal wieder versucht.
    gestern lief es absolut problemlos:
    Pumpensteuerung_so_muss_es.png
    (bei einer Außentemperatur um 11°C sprang natürlich immer wieder die Automatic in die Quere)

    Heute geht es weider nicht:
    Pumpensteuerung_so_darf_es_nicht.png

    trotz überschreiten der Sollgrenze wird zwar das richtige log geschrieben, aber der Stop der zyklischen Abarbeitung im gleichen "sonst falls" löst mehrfach nicht aus!

    Was kann ich noch machen?


  • @Homoran
    Nur eine Vermutung: Vielleicht macht der Umlaut "ä" in der Timer-Variable Probleme ?

  • Forum Testing Most Active Global Moderator Administrators

    @paul53 sagte in Javascript spinnt:

    Nur eine Vermutung:

    Danke! ich bin ja froh über jeden Strohhalm.

    Habe eben noch mal etwas geändert - abgespeichert - lief! 🍾
    noch mal gestartet - lief wieder nicht 😡

    werde jetzt mal das ä rausnehemn

  • Developer

    @paul53 sagte in Javascript spinnt:

    Der Script-Editor meckert alle NPM-Module an, was man ignorieren sollte.

    Ist das immer noch so? 😥 Der Fix dafür sollte eigentlich schon längst published sein...

  • Forum Testing Most Active Global Moderator Administrators

    @Homoran sagte in Javascript spinnt:

    werde jetzt mal das ä rausnehemn

    vorsichtiger Optimismus:
    Hat jetzt 4 Testzyklen in Folge keine Probleme gemacht.

    Nach dem Abspeichern klappt es meistens sowieso einmal - aber 4x ist schon fast eine Revolution.
    Werde es weiter beobachten.

    Allerdings lief es letztes Jahr auch mit dem ä ohne Probleme, da aber mit anderen Versionen von controller und js


  • @Homoran sagte:

    da aber mit anderen Versionen von controller und js

    JS-Adapter und js-controller dürften keinen Einfluss auf Variablenbezeichner haben, eher der Compiler (V8) einer neueren Node.js-Version.


  • @AlCalzone sagte:

    Der Fix dafür sollte eigentlich schon längst published sein...

    Schon in Version 4.4.0 ?

  • Developer

    @paul53 Eigentlich schon 4.3.2:
    https://github.com/ioBroker/ioBroker.javascript#432-2019-10-27

    Vielleicht hab ich auch die passende Entwicklerversion installiert, aber für require("axios") geht es bei mir.


  • @AlCalzone
    4.4.0 meldet bei mir: Cannot find module 'suncalc'

  • Developer

    @paul53 Bei mir auch - hast du das in den zusätzlichen Modulen eingetragen oder lädst du das bereits integrierte Modul?


  • @AlCalzone sagte:

    lädst du das bereits integrierte Modul?

    Ja.
    Die Fehlermeldung erhalte ich aber auch bei dem zusätzlich installierten Modul "xml2js".

Suggested Topics

  • 2
  • 5
  • 6
  • 6
  • 8
  • 103
  • 19
  • 2

1.6k
Online

34.9k
Users

40.9k
Topics

561.4k
Posts