Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. S7 Adapter Temperatur Siemens Logo

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    S7 Adapter Temperatur Siemens Logo

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

      const idS7Temp = '...'; // Datenpunkt-ID vom S7 eingeben !
      const idTemp = 'S7.Pooltemperatur'; // neuer Datenpunkt unter javascript.0
      
      createState(idTemp, 0, {type: 'number', unit: '°C', role: 'value.temperature'}); // Neuen Datenpunkt erzeugen
      
      on(idS7Temp, function(dp) { // Wertänderung
         setState(idTemp, dp.state.val / 10, true);
      });
      
      // Skriptstart
      setState(idTemp, getState(idS7Temp).val / 10, true);
      
      1 Reply Last reply Reply Quote 0
      • Elektroniker86
        Elektroniker86 last edited by

        Hallo Paul53,

        das ging ja mal verdammt schnell. 🙂

        Das Script funktioniert einwandfrei !!!

        Vielen vielen Dank für die schnelle Hilfe.

        Gruß

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

          Hallo Leute,

          ich muss das Thema nochmal aufgreifen. Ich habe nämlich bezüglich der Außentemperatur noch ein Problem das ich nicht lösen konnte ......

          In ioBroker unter Objekte wird sobald es kalt wird bzw ab - 0 C° ein komischer Wert angezeigt ( 65446 C°) in der LOGO wird mir der richtige Wert angezeigt, der Wert sollte eigentlich - 9,0 C° anzeigen bzw. 90 C° das Komma wird ja mit dem Script gemacht.
          keine Ahnung wie ioBroker auf diesen wert kommt?
          Sobald es wieder +0,1 C° wird, ist alles wieder wunderbar und der Wert stimmt. Hat das auch schon jemand beobachtet?

          Den Wert frage ich über AM2 ab. Hier ein paar Screenshots.

          Logosoft.png

          iobroker.png

          Kann mir da vielleicht jemand helfen?

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

            
            function S7Celsius(val) {
               if(val > 32768) val = val - 65536;
               setState(idTemp, val / 10, true);
            }
            
            on(idS7Temp, function(dp) { // Wertänderung
               S7Celsius(dp.state.val);
            });
            
            // Skriptstart
            S7Celsius(getState(idS7Temp).val);
            

            EDIT: Vorzeichen korrigiert.

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

              Danke, das ging ja mal wieder blitzschnell, vielen Dank dafür. ☺

              Aber wo muss das Script hin ? Unter common oder global?
              Wenn ich es im Ordner LOGO unter common speichere und starte dann kommen Fehler. Siehe Screenshots.

              iobroker.png

              iobroker2.png

              Elektroniker86 paul53 2 Replies Last reply Reply Quote 0
              • Elektroniker86
                Elektroniker86 @Elektroniker86 last edited by Elektroniker86

                @Elektroniker86 sagte in S7 Adapter Temperatur Siemens Logo:

                Danke, das ging ja mal wieder blitzschnell, vielen Dank dafür. ☺

                Aber wo muss das Script hin ? Unter common oder global?
                Wenn ich es im Ordner LOGO unter common speichere und starte dann kommen Fehler. Siehe Screenshots.

                iobroker.png

                iobroker2.png

                O.K. hat sich erledigt, habs selbst hinbekommen, das Script musste in das Script von ganz oben hinzugefügt werden.

                Aber es wird nicht angezeigt ob es sich jetzt um eine Minus Temperatur dreht oder nicht.

                Kann man irgendwie ein Minus (-) hinzufügen?

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Elektroniker86 last edited by paul53

                  @Elektroniker86 sagte

                  dann kommen Fehler.

                  Das ist nicht das komlplette Skript, da ich davon ausgegangen bin, dass Du schon ein Skript zur Umrechnung verwendest und es nur anpassen musst.
                  Es fehlt die Deklaration und Zuweisung der Datenpunkt-IDs am Anfang des Skripts:

                  const idS7Temp = 's7.2.DBs.DB1.AM2'; // Datenpunkt-ID von LOGO
                  const idTemp = 'LOGO.Außentemperatur'; // Datenpunkt unter javascript.0
                   
                  
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Elektroniker86 last edited by

                    @Elektroniker86 sagte

                    Aber es wird nicht angezeigt ob es sich jetzt um eine Minus Temperatur dreht oder nicht.

                    Mein Fehler, habe es im Skript korrigiert.

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

                      @paul53 sagte in S7 Adapter Temperatur Siemens Logo:

                                                                                                                                                                                                                                                                                                                               function S7Celsius(val) {                                                                                                                                                                               if(val > 32768) val = val - 65536;                                                                                                                                                                               setState(idTemp, val / 10, true);                                                                                                                                                                            }                                                                                                                                                                                                                                                                                                                                                         on(idS7Temp, function(dp) { // Wertänderung                                                                                                                                                                               S7Celsius(dp.state.val);                                                                                                                                                                            });                                                                                                                                                                                                                                                                                                                                                         // Skriptstart                                                                                                                                                                            S7Celsius(getState(idS7Temp).val);                                            
                      

                      Ja, das scripten ist nicht so meine Spezialität, ich habs aber dann doch noch gecheckt..... 🙂

                      Einfach Klasse, es funktioniert .........
                      Respekt!!!! Wirklich, vielen lieben Dank für die promte Hilfe. 😊

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

                        Guten Abend,

                        ich muss das hier nochmal hoch holen. Was muss im Script geändert werden damit bei den Temperaturen ein Komma statt ein Punkt angezeigt wird und bei ganzen Temperaturen z.B 5,0°C statt 5°C angezeigt wird? Kann mir dabei vielleicht jemand unter die Arme greifen?

                        Vielen Dank im Voraus!!!

                        const idS7Temp = 's7.2.DBs.DB1.AM05'; // Datenpunkt-ID vom S7 eingeben !
                        const idTemp = 'LOGO.Temperaturen.Außentemperatur'; // neuer Datenpunkt unter javascript.0
                         
                        createState(idTemp, 0, {type: 'number', unit: '°C', role: 'value.temperature'}); // Neuen Datenpunkt erzeugen
                         
                        on(idS7Temp, function(dp) { // Wertänderung
                           setState(idTemp, dp.state.val / 10, true);
                        });
                         
                        // Skriptstart
                        setState(idTemp, getState(idS7Temp).val / 10, true);
                        
                          
                        function S7Celsius(val) {
                           if(val > 32768) val = val - 65536;
                           setState(idTemp, val / 10, true);
                        }
                         
                        on(idS7Temp, function(dp) { // Wertänderung
                           S7Celsius(dp.state.val);
                        });
                         
                        // Skriptstart
                        S7Celsius(getState(idS7Temp).val);
                        
                        
                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Elektroniker86 last edited by paul53

                          @elektroniker86 sagte: ein Komma statt ein Punkt angezeigt wird

                          const idS7Temp = 's7.2.DBs.DB1.AM05'; // Datenpunkt-ID vom S7 eingeben !
                          const idTemp = '0_userdata.0.LOGO.Temperaturen.Außentemperatur'; // neuer Datenpunkt
                           
                          createState(idTemp, '0,0', {type: 'string', role: 'state'}); // Neuen Datenpunkt erzeugen
                           
                          function S7Celsius(val) {
                             if(val > 32768) val = val - 65536;
                             setState(idTemp, (val / 10).toFixed(1).replace('.', ',') + ' °C', true);
                          }
                           
                          on(idS7Temp, function(dp) { // Wertänderung
                             S7Celsius(dp.state.val);
                          });
                           
                          // Skriptstart
                          S7Celsius(getState(idS7Temp).val);
                          
                          Elektroniker86 1 Reply Last reply Reply Quote 1
                          • Elektroniker86
                            Elektroniker86 @paul53 last edited by

                            @paul53
                            Hi, vielen Dank für die, wie immer schnelle Hilfe ! 🙂
                            Geil, funktioniert! Ich habe ein neues Skript angelegt mit Außenbeleuchtung Norden. Aber mir wird zwei mal °C angezeigt.

                            Hab ich da was falsch gemacht?

                            Screenshot (7).png

                            Screenshot (8).png

                            Screenshot (9).png

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Elektroniker86 last edited by paul53

                              @elektroniker86 sagte: mir wird zwei mal °C angezeigt.

                              Ändere den Datenpunkt-Typ in "string" ohne "unit". Oder lösche ihn, dann wird er mit createState() bei Skriptstart richtig erzeugt.

                              Elektroniker86 1 Reply Last reply Reply Quote 1
                              • Elektroniker86
                                Elektroniker86 @paul53 last edited by Elektroniker86

                                @paul53
                                Vielen Dank !!! Funktioniert einwandfrei!!!

                                Daumen hoch! 👍

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

                                  Hi, ich habe leider noch ein Problem.
                                  Seit dem ich das Script wie oben mit Komma usw. geändert habe werden im odometer Widget und im vis-material-advanced - list temp Widget die Temperaturwerte nicht mehr angezeigt. Wenn ich den alten Datenpunkt vom alten Script her nehme dann wird der Wert angezeigt.

                                  Im basic-number widget und im vis-inventwo -universal switch widget als Binding funktionieren die neuen Datenpunkte. Kann man das auch irgendwie fixen damit man die Datenpunkte für alle Widgets verwenden kann?

                                  Vielen Dank vorab!

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @Elektroniker86 last edited by paul53

                                    @elektroniker86 sagte: werden im odometer Widget und im vis-material-advanced - list temp Widget die Temperaturwerte nicht mehr angezeigt.

                                    Die Widgets benötigen wahrscheinlich Zahlen und können mit dem String nichts anfangen.

                                    Elektroniker86 1 Reply Last reply Reply Quote 0
                                    • Elektroniker86
                                      Elektroniker86 @paul53 last edited by

                                      @paul53

                                      Nun gut, ist dann wenigstens möglich das alte Skript (number) so umzubauen damit 0.0 angezeigt wird ? Mit dem Punkt kann ich leben wenn ich auf das Komma verzichten muss.... Oder geht das auch nicht ?

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @Elektroniker86 last edited by

                                        @elektroniker86 sagte: möglich das alte Skript (number) so umzubauen damit 0.0 angezeigt wird ?

                                        Nein, Zahlen werden nicht mit einer 0 nach dem Punkt angezeigt. Das Problem für das Widget ist der String.

                                        L 1 Reply Last reply Reply Quote 0
                                        • L
                                          lucky51179 @paul53 last edited by

                                          @paul53 @paul53 ![0_1619332250706_Bildschirmfoto 2021-04-25 um 08.30.35.png](Uploading 100%)

                                          Kann mir jemand sagen wo da der Fehler liegt ?

                                          L 1 Reply Last reply Reply Quote 0
                                          • L
                                            lucky51179 @lucky51179 last edited by

                                            @lucky51179 Bildschirmfoto 2021-04-25 um 08.30.35.png

                                            Kann mir jemand sagen wo da der Fehler liegt ?

                                            Wal paul53 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            519
                                            Online

                                            32.2k
                                            Users

                                            80.9k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            36
                                            2142
                                            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