Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [GELÖST]Datenpunkt und Funktion(FEHLER???)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    9
    1
    98

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

[GELÖST]Datenpunkt und Funktion(FEHLER???)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 2 Kommentatoren 1.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • blauholstenB Offline
    blauholstenB Offline
    blauholsten
    Developer
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich habe folgendes Problem.:

    Ich nutze ctrl Button State um meine HM Thermostate in Hand bzw Auto zu versetzten.

    Ich habe mir nach langen hin und her ein Script angelegt um in den Manu-Modus wechseln zu können, denn der Button gibt anscheinend einen String aus.

    Jetzt passiert aber folgendes:

    ich erzeuge Datenpunkte und verknüpfe diese mit den ctrl Buttons, diese sollen dann bei Betätigung eine function ausführen. Soweit so gut…...die Thermostate führen die Aktion auch aus, aber.........wenn ich jetzt einen dieser Button betätige, reagiert das andere Thermostat auch!!!

    Ich habe kaum Programmierkenntnisse aber aus meiner Sicht kann es nicht sein das eine Funktion bzw eine Datenpunkt angesteuert wird der einen komplett einen anderen Namen besitzt!

    Hier das erste Script:

    //Erzeuge Datenpunkte
    createState('thermostat.stube.autostube', "");
    createState('thermostat.stube.manustube', "");
    
    //Funktion für Umschaltung auf "manuell"
    function manstube ()
    {
        //Datenpunkte des Thermostates
        var a = getState("hm-rpc.0.MEQ0480054.2.AUTO_MODE").val;
        var b = getState("hm-rpc.0.MEQ0480054.2.MANU_MODE").val;
    
        if(a)
        {
    
            setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", false);
            setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 0);//wichtig ist die "0"
            log("manuell");
        }
        else
        {
    
            setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 0);//wichtig ist die "0" 
            log("manuell");
        }
    }
    
    //Funktion für Umschaltung auf "automatik"
    function autstube ()
    {
        var a = getState("hm-rpc.0.MEQ0480054.2.AUTO_MODE").val;
        var b = getState("hm-rpc.0.MEQ0480054.2.MANU_MODE").val;
    
        if(b)
        {
    
            setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", false);
            setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", true);
            log("automatik");
        }
        else
        {
            setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", true);
            log("automatik");
        }
    }
    
    //reagieren auf Betätigung der crtl State Button im VIS
    on({ID: 'javascript.0.thermostat.stube.autostube', "val": "0"}, function()
    {
        autstube();
    });
    
    on({ID: "javascript.0.thermostat.stube.manustube", "val": "1"}, function()
    {
        manstube();
    });
    
    

    ….hier das zweite:

    //Erzeuge Datenpunkte
    createState('thermostat.bad.autobad', "");
    createState('thermostat.bad.manubad', "");
    
    //Funktion für Umschaltung auf "manuell"
    function manbad ()
    {
        //Datenpunkte des Thermostates
        var a = getState("hm-rpc.0.MEQ0447885.4.AUTO_MODE").val;
        var b = getState("hm-rpc.0.MEQ0447885.4.MANU_MODE").val;
    
        if(a)
        {
    
            setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", false);
            setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", 0);//wichtig ist die "0"
            log("Manuell");
        }
        else
        {
    
            setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", 0);//wichtig ist die "0" 
            log("Manuell");
        }
    }
    
    //Funktion für Umschaltung auf "automatik"
    function autbad ()
    {
        var a = getState("hm-rpc.0.MEQ0447885.4.AUTO_MODE").val;
        var b = getState("hm-rpc.0.MEQ0447885.4.MANU_MODE").val;
    
        if(b)
        {
    
            setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", false);
            setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", true);
            log("Automatik");
        }
        else
        {
            setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", true);
            log("Automatik");
        }
    }
    
    //reagieren auf Betätigung der crtl State Button im VIS
    on({ID: 'javascript.0.thermostat.bad.autobad', "val": "0"}, function()
    {
        autbad();
    });
    
    on({ID: "javascript.0.thermostat.bad.manubad", "val": "1"}, function()
    {
        manbad();
    });
    
    

    671_f1.jpg
    671_f.jpg

    übersehe ich was??? Oder habe ich überhaupt keine Ahnung??? :roll:

    Entwickler vom: - Viessman Adapter
    - Alarm Adapter

    1 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #2

      Kann keiner helfen??? Ich verzweifle noch.

      mir ist absolut nicht klar warum beide Scripte durchlaufen werden! :cry:

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @blauholsten:

            var a = getState("hm-rpc.0.MEQ0480054.2.AUTO_MODE").val;
            var b = getState("hm-rpc.0.MEQ0480054.2.MANU_MODE").val;
        ```` `  
        

        AUTO_MODE und MANU_MODE können nicht gelesen weden. Zur Abfrage des aktuellen Modus dient CONTROL_MODE (0 = AUTO-MODE, 1 = MANU-MODE, 2 = PARTY-MODE, 3 = BOSST-MODE).
        @blauholsten:

        setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 0);//wichtig ist die "0"
        ```` `  
        

        An MANU_MODE muss der Sollwert (in °C) übergeben werden.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          schrieb am zuletzt editiert von
          #4

          Hallo paul53,

          das mit dem getState weiss ich, ging aber dennoch. Der Wert war bloß nicht bestätigt.

          Die Funktionalität war komplett gegeben.

          Zur Temperatur:

          Man kann auch jede andere beliebige Zahl eingeben, wichtig ist sie nicht als ""String einzugeben, denn das funktioniert nicht!

          Ich habe die letzten Stunden das Script wie folgt geändert, leider werden die unterschiedlichen "function" trotzdem ausgeführt! ICH VERSTEHE NICHT WARUM!

          createState('thermostate.stube.modus', "");
          createState('thermostate.bad.modus', "");
          
          function stube()
          {
              var a = getState("hm-rpc.0.MEQ0480054.2.CONTROL_MODE").val;
          
              switch(a)
              {
                  case 0:
                      setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", false);
                      setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 0);
                      toLog(zeit + "->" + "Stube Manuell");
                      break;
                  case 1:
                      setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", false);
                      setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", true);
                      toLog(zeit + "->" + "Stube Automatik");
                      break;
              }
          
          }
          
          //************************************************************************
          
          function bad()
          {
              var b = getState("hm-rpc.0.MEQ0447885.4.CONTROL_MODE").val;
          
              switch(b)
              {
                  case 0:
                      setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", false);
                      setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", 0);
                      toLog(zeit + "->" + "Bad Manuell");
                      break;
                  case 1:
                      setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", false);
                      setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", true);
                      toLog(zeit + "->" + "Bad Automatik");
                      break;
              }
          
          }
          on({ID: "javascript.0.thermostate.stube.modus", "val":"0"}, function()
          {
              stube();
          });
          on({ID: "javascript.0.thermostate.stube.modus", "val":"1"}, function()
          {
              stube();
          });
          
          on({ID: "javascript.0.thermostate.bad.modus", "val":"0"}, function()
          {
              bad();
          });
          on({ID: "javascript.0.thermostate.bad.modus", "val":"1"}, function()
          {
              bad();
          });
          
          

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            Dass beide Thermostaten gleichzeitig reagieren, kann ich in dem Script nicht nachvollziehen.

            Allerdings setzt man immer nur einen Modus: Entweder AUTO oder MANU.

            Bezüglich des Auslösers sollte man die Funktion vereinfachen, denn "Standard" ist "change: ne" (bei Änderung).

                createState('thermostate.stube.modus', "");
                createState('thermostate.bad.modus', "");
            
                function stube()
                {
                    var a = getState("hm-rpc.0.MEQ0480054.2.CONTROL_MODE").val;
            
                    switch(a)
                    {
                        case 0:
                            setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 20.0);  // Sollwert
                            toLog(zeit + "->" + "Stube Manuell");
                            break;
                        default:
                            setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", true);
                            toLog(zeit + "->" + "Stube Automatik");
                    }
                }
            
                //************************************************************************
            
                function bad()
                {
                    var b = getState("hm-rpc.0.MEQ0447885.4.CONTROL_MODE").val;
            
                    switch(b)
                    {
                        case 0:
                            setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", 22.0);   // Sollwert
                            toLog(zeit + "->" + "Bad Manuell");
                            break;
                        default:
                            setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", true);
                            toLog(zeit + "->" + "Bad Automatik");
                    }
                }
            
                on("javascript.0.thermostate.stube.modus", function() {
                    stube();
                });
            
                on("javascript.0.thermostate.bad.modus", function() {
                    bad();
                });
            
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              Hast Du mal die Zeitstempel der beiden JS-Datenpunkte verglichen ?

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • blauholstenB Offline
                blauholstenB Offline
                blauholsten
                Developer
                schrieb am zuletzt editiert von
                #7

                @paul53:

                Hast Du mal die Zeitstempel der beiden JS-Datenpunkte verglichen ? `

                leider nein, habe vorhin alles neu gestartet und dann ging es komischerweise!

                Deine Veränderungen in der Switch-Anweisung machen sinn! Danke hierfür.

                Aber die Veränderung beim Aufruf (ON) klappt mit der "Standard" Variante nicht. Wenn ich von aussen den Modus wechsle, würde das im VIS nicht mehr passen.

                Ich habe es jetzt so gelöst, und es funktioniert endlich alles wie es soll!

                //*****************DATENPUNKTE*ERZEUGEN****************************************
                createState('thermostate.stube.modus', "");
                createState('thermostate.bad.modus', "");
                createState('thermostate.küche.modus', "");
                
                //*********************STUBE**************************************************
                    function stube()
                    {
                        var a = getState("hm-rpc.0.MEQ0480054.2.CONTROL_MODE").val;
                
                        switch(a)
                        {
                            case 0:
                                setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 5.0); // Sollwert
                                toLog(zeit + "->" + "Stube Manuell");
                                break;
                            default:
                                setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", true);
                                toLog(zeit + "->" + "Stube Automatik");
                        }
                    }
                //********************BAD*****************************************************
                    function bad()
                    {
                        var b = getState("hm-rpc.0.MEQ0447885.4.CONTROL_MODE").val;
                
                        switch(b)
                        {
                            case 0:
                                setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", 5.0); // Sollwert
                                toLog(zeit + "->" + "Bad Manuell");
                                break;
                            default:
                                setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", true);
                                toLog(zeit + "->" + "Bad Automatik");
                        }
                    }
                //********************KÜCHE****************************************************    
                    function kueche()
                    {
                        var c = getState("hm-rpc.0.MEQ0447899.4.CONTROL_MODE").val;
                
                        switch(c)
                        {
                            case 0:
                                setState("hm-rpc.0.MEQ0447899.4.MANU_MODE", 5.0); // Sollwert
                                toLog(zeit + "->" + "Küche Manuell");
                                break;
                            default:
                                setState("hm-rpc.0.MEQ0447899.4.AUTO_MODE", true);
                                toLog(zeit + "->" + "Küche Automatik");
                        }
                    }
                //********************AUFRUFE**************************************************
                    on({id: "javascript.0.thermostate.stube.modus", "val": "stubem"}, function() 
                    {
                        stube();
                    });
                    on({id: "javascript.0.thermostate.stube.modus", "val": "stubea"}, function() 
                    {
                        stube();
                    });
                    on({id: "javascript.0.thermostate.bad.modus", "val": "badm"}, function() 
                    {
                        bad();
                    });
                    on({id: "javascript.0.thermostate.bad.modus", "val": "bada"}, function() 
                    {
                        bad();
                    });
                    on({id: "javascript.0.thermostate.küche.modus", "val": "küchea"}, function() 
                    {
                        kueche();
                    });
                    on({id: "javascript.0.thermostate.küche.modus", "val": "küchem"}, function() 
                    {
                        kueche();
                    });
                

                In dem Script könnte man in den Case Anweisung mit "case 3:" nun noch die Boost-Funktion der Thermostate realisieren.

                Danke für die Hilfe.

                Entwickler vom: - Viessman Adapter
                - Alarm Adapter

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                864

                Online

                32.5k

                Benutzer

                81.7k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe