Too many calls in progress

Die Verwendung von Skripten liegt im eigenen Ermessen des Benutzers. Unterstützung für Skripte wird vom Autor des Skripts bereitgestellt.
  • Hallo,

    ich bin ein unwissender Neuling und fummel mich gerade durch das Skripting der Shelly's autodidaktisch durch und habe mir schon die Augen eckig gelesen....

    Deshalb bräuchte ich mal ne Hilfestellung.....

    Ich habe ein kleines Skript - Programm geschrieben und bekomme in unbestimmten Abständen jeweils Fehler zu dem ich bislang noch nicht's zu lesen bekommen habe.

    Vielleicht auch meiner Unkenntniss geschuldet.

    Habe mehrere Shelly's 3x1 PM Gen3 und 2x Plus1. Die Firmware ist neueste.

    Auf den 1 PM Gen3 Shelly's laufen die selben Skriptprogramme, auch erstmal zum Test und sollen noch erweitert werden.

    Dort poppt nach einiger Zeit der Fehler : Too many calls in progress auf.

    Habe gelesen das 5 calls wohl i.O. sind, habe aber nur 4 laufen.....

    Deshalb kommt mir der Fehler seltsam vor

    Es wäre toll wenn mir jemand mal helfen könnte

    Habe das Skript und die Meldung von der Console in den Anhang gestellt......hoffentlich richtig dort....

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
  • Ups glaube war nicht richtig, deshalb füge ich beides nochmal hier ein.....let WWbPumpe = false;
    let HZgPumpe = false;
    let temperatureCelsius = 0;
    let Temp = 0;

    //=====================================================================================================================================
    // Hier fängt die Schleife für das Programm an, welche ständig durchlaufen wird
    function timerHandler() {


    Shelly.call('http.get', { url: 'http://192.168.178.80/rpc/switch.getstatus?id=0' }, // Abfrage der WWB Pumpe aus anderem Shelly
    function(response) { let res = JSON.parse(response.body);
    WWbPumpe = (res.output); } );
               
    Shelly.call('http.get', { url: 'http://192.168.178.81/rpc/switch.getstatus?id=0' }, // Abfrage der HZG Pumpe aus anderem Shelly
    function(response) { let res = JSON.parse(response.body);
    HZgPumpe = (res.output); } );

    Shelly.call('http.get', { url: 'http://192.168.178.81/rpc/switch.getstatus?id=0' }, // Abfrage der HZG Pumpe aus anderem Shelly
    function(response) { let res = JSON.parse(response.body);
    Temp = (res.temperature.tC); } );

    //==================Temperatur vom 192.168.178.81 Shelly holen==================================================================
    Shelly.call(
    "HTTP.GET",
    {
    url: "http://192.168.178.81/rpc/Temperature.GetStatus?id=100"
    },
    function(result, error_code, error_message) {
    if (error_code !== 0) {
    print('Error');
    } else {
    let jsonData = JSON.parse(result.body);

    // Hier können Sie auf die Temperaturdaten zugreifen
         
    let temperatureCelsius = jsonData.tC;
    // print("Temperatur (°C):", temperatureCelsius);
    Temp = temperatureCelsius;
    }
    }
    );
         
    //===============================================================================================================================
    // Die Temperatur liegt in der Variable " Temp "================================
    print("VL hint Erh Temp = ",Temp);
    print(" WWB Pumpe Ein = ",WWbPumpe);
    print(" HZG Pumpe Ein = ",HZgPumpe);

    }
    //======================= Schleifen Ende mit Zeitbestimmung ==================================================================
    Timer.set (1000, true, timerHandler, null);// alle 1.000 = 1 sec. das Programm durchlaufen

    Hier das Fehlerprotokoll....

    HZG Pumpe Ein = true 16:49:00
    VL hint Erh Temp = 56.2 16:49:01
    WWB Pumpe Ein = false 16:49:01
    HZG Pumpe Ein = true 16:49:01
    Uncaught Error: Too many calls in progress 16:49:02
    at HZgPumpe = (res.output); } ); 16:49:02
    ^ 16:49:02
    in function called from system

  • Nun dein Script ist weit entfernt von einem leicht verständlichen Codestyle.

    Ich habe alle mir schnell ersichtlichen Fehlerursachen abgefangen damit dein Code auch bei einem Fehler weiterläuft.

    - Ursache ich häufig dass die Gegenseite nicht erreichbar ist. (Du siehst in der console in welchen "call" ein error auftrat.

  • Hallo HighFive,

    erstmal herzlichen Dank für deine Hilfe.

    Ich lasse das Programm nun laufen und schaue weiter.

    Ich habe mir vor ein paar Wochen die Shellys besorgt und seitdem hocke ich vor den Skripten....

    D.h. ich versuche mir alles autodidaktisch bei zu bringen.

    Es ist sehr schwer für mich, da ich die richtige Lektüre nicht finde...

    Kannst Du mir da vielleicht was empfehlen, was auf die Shelly's zugeschnitten ist ?

    Ich werde versuchen die Skriptänderungen von Dir zu verstehen und weiter zu pflegen.

    Beim lauf des Skriptes kam zu anfang wieder ein Error, das Skript lief aber weiter, welches bei dem vorherigen Skript nicht geschah ?!?

    Code
     print('Error on first call: ' + e); Wieso, wenn der Error  mit print versehen wird ist dies eine Behebung des Fehlers?
    Code
    function(result, error_code, error_message) {
                    if (error_code !== 0) {
                        print('Error');          Oder hier, wieso läuft das Skript beim Fehler weiter ? Woran erkenne ich Problemstellungen....? Fragen Fragen Fragen hoffentlich nerve ich nicht zu viel.... 
  • Wieso, wenn der Error mit print versehen wird ist dies eine Behebung des Fehlers?

    Das "print" ist nicht das Geheimnis, sondern das TRY / CATCH. ;) Erklärung

    Kannst Du mir da vielleicht was empfehlen, was auf die Shelly's zugeschnitten ist ?

    Mit geringer oder keiner Programmier-Erfahrung wird es mühsam werden...

    Hier die Shelly Script Dokumentation.

    Wünsche dir viel Erfolg.

  • Dieses Thema enthält 10 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.