Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Photovoltaik Script

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Photovoltaik Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      michi050 last edited by

      Hallo,

      ich habe das Skript für den Piko 5.5 installiert, es funktioniert wunderbar. Da sich der Router des PIKO nur dann einschaltet, wenn ich zu Hause bin, bringt mir das Skript logischerweise eine Fehlermeldung alle 5 Minuten. Nun zu meiner Frage: Kann ich das Skript per Datenpunkt aus der CCU nach Bedarf aktivieren / deaktivieren?

      Vielen Dank im Voraus

      Gruß Michael

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        @michi050:

        Hallo,

        ich habe das Skript für den Piko 5.5 installiert, es funktioniert wunderbar. Da sich der Router des PIKO nur dann einschaltet, wenn ich zu Hause bin, bringt mir das Skript logischerweise eine Fehlermeldung alle 5 Minuten. Nun zu meiner Frage: Kann ich das Skript per Datenpunkt aus der CCU nach Bedarf aktivieren / deaktivieren?

        Vielen Dank im Voraus

        Gruß Michael `

        Was meinst du genau?

        Willst du das Script starten, wenn z.B. die Systemvariable auf der ccu2 auf anwesend geht ?

        So startet das Script alle 5 Min.

        schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
            log ("Auslöser: Schedule");
        	Piko();
        });
        
        

        Das nehm raus und starte auf die Veränderung der SV:

        on({id: "Systemvariable .....", change: "ne", val: true}, function() {   // SV wurde geändert auf true
            log("Auslöser SV .... true);
            Piko();
        }); 
        

        fertig.

        mfg

        1 Reply Last reply Reply Quote 0
        • M
          michi050 last edited by

          Hallo Dieter,

          vielen Dank zunächst. Das Script soll sich erst aktivieren, wenn ich zu Hause bin ( Anwesenheit true) und dann alle 5 Minuten aktualisieren. Wenn ich gehe ( Anwesenheit false), dann soll es sich wieder deaktivieren. In Deinen Beispiel dürfte es sich doch nur einmal bei Anwesenheit aktualisieren dann nicht mehr, oder?

          Gruß Michael

          1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active last edited by

            ok, dann so:

            schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
            	var Anw = getState('SV.....').val;
            	if (Anw === true) {
            		log ("Auslöser: Schedule");
            		Piko();
            	}
            });
            

            Das heißt:

            Schedeule wird alle 5 Min. ausgeführt.

            Und dann wird Anwesenheit geprüft.

            Und nur wenn Anw true dann gehe zum Script.

            so richtig ?

            mfg

            1 Reply Last reply Reply Quote 0
            • M
              michi050 last edited by

              Ich danke Dir herzlich, Dieter 🙂

              1 Reply Last reply Reply Quote 0
              • P
                piet1 last edited by

                Ich hab jetzt auch meine ersten Programmierversuche gestartet 😄 Garagentor funktioniert jetzt über App dank Arduino!! - http://www.instructables.com/id/Arduino-WiFi-Garage-Door-Opener/ Infos dazu.

                Den Erwerb einer PV überlegen wir uns auch schon eine Zeit lang, sollte es soweit kommen, probiere ich dein Skript auch sehr gerne aus! 🙂

                Aktuell sind wir nämlich nur bei eine PV-Projekt der https://www.stw.at eingemietet, selber haben wir derzeit nur Solar-Zellen am Dach.

                Meinst du, mit kleinen Änderungen kann man dein Script auch dafür verwenden?

                Gruß,

                piet

                1 Reply Last reply Reply Quote 0
                • M
                  michi050 last edited by

                  Hallo,

                  ich habe das Script von Bahnuhr zum Auslesen der Daten vom Kostal in Gebrauch. Es funktioniert grundsätzlich ganz gut, aber so 2-3mal pro Tag bringt das Script die Instanz der Java Scriptengine zum Absturz. Dies hat zur Folge, dass alle laufenden Prozesse unterbrochen werden, bis die Instanz neu gestartet ist.

                  Ohne das Script grundsätzlich verändern zu wollen wäre die Frage ob es sinnvoll ist, eine weitere Instanz (JavaScript.1) zu installieren und in dieser das Kostalscript isoliert zu betreiben? Dann würde die Instanz Javascript.0 zumindest nicht mehr abstürzen. Wäre der Ansatz richtig?

                  Danke u. Gruß

                  Michael

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    Was heisst "bringt zum Absturz"!? Welche Fehler gibts denn?

                    1 Reply Last reply Reply Quote 0
                    • P
                      pix last edited by

                      Hallo Michael,

                      unbedingt! Das ist die schnellste Lösung bevor man sich das Skript vornimmt. So lässt sich auch rausfinden, ob nur das Photovoltaik Skript oder ein weiteres Skript, das parallel läuft (zB gleichzeitig auch von einer Webseite parst), den Fehler ausführt.

                      Also schnell eine neue Instanz erstellen!

                      Gruß

                      Pix

                      EDIT:

                      Neue oder verdächtige Skripte laufen bei mir immer in der Instanz 2.

                      Skripte, die getestet sind und Daten aus dem Internet benötigen in Instanz 1.

                      Alle lebenswichtigen Skripte (ohne Internetbedarf) in Instanz 0.

                      1 Reply Last reply Reply Quote 0
                      • M
                        michi050 last edited by

                        @ apollon77:

                        Es wird versucht Daten auszulesen, danach stehen im Log Fehlerzeilen, im Anschluß wird die Instanz neu gestartet. Es kommt selten vor, aber laufende Prozesse sind dann jeweils beendet.

                        @ pix

                        Vielen Dank. Also unter Adapter nur eine weitere Javascript/Coffeescript Engine (+) installieren?

                        Gruß

                        Miichael

                        1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          @michi050:

                          @ apollon77:

                          Es wird versucht Daten auszulesen, danach stehen im Log Fehlerzeilen, im Anschluß wird die Instanz neu gestartet. Es kommt selten vor, aber laufende Prozesse sind dann jeweils beendet. `
                          Dann dann mal her mit den Fehlerzeilen 🙂

                          1 Reply Last reply Reply Quote 0
                          • M
                            michi050 last edited by

                            Hallo Apollo,

                            hier das Log der Fehlermeldung.

                            Gruß Michael
                            1914_kostal.jpg

                            1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              Spontan tippe ich das es Fälle gibt wo dein Request in einen Fehler läuft. Dann ist "body" leer.

                              Das wird aktuell im Skript aber nicht abgefangen. Und scheinbar fängt es die cheerio-Library beim Aufruf

                                                  $ = cheerio.load(body);
                              

                              auch nicht ab.

                              Ich würde ja noch ein "if (body) { …}" in den request einbauen oder wenigstens noch den responsecode prüfen - der ist bei den Fehlerfällen bestimmt auch nicht 200 ... Also hier fehlt einfach Fehlerhandling 🙂

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              826
                              Online

                              31.7k
                              Users

                              79.8k
                              Topics

                              1.3m
                              Posts

                              10
                              41
                              5196
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo