Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Aussentemperatur Wetterstation WS980Wifi in iobroker

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    661

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Aussentemperatur Wetterstation WS980Wifi in iobroker

Scheduled Pinned Locked Moved Off Topic
23 Posts 5 Posters 1.6k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Pascal BayP Pascal Bay

    @homoran Danke, ich gehe auch davon aus. Der Wert in der Wetterstation stimmt. (Eigene App) Ich denke auch, da ist etwas falsch in CuxD sobald der wert negativ wird. Wo kann ich das sehen? Bildschirmfoto 2025-01-14 um 17.13.15.jpg

    paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by paul53
    #11

    @pascal-bay sagte: etwas falsch in CuxD

    Der Fehler liegt wohl eher in der Datei weather.tcl, denn sie wird von CUxD ausgeführt.

    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

    P 1 Reply Last reply
    1
    • paul53P paul53

      @pascal-bay sagte: etwas falsch in CuxD

      Der Fehler liegt wohl eher in der Datei weather.tcl, denn sie wird von CUxD ausgeführt.

      P Offline
      P Offline
      peterfido
      wrote on last edited by
      #12

      @paul53 Die habe ich auch schon gesucht.

      Gruß

      Peterfido


      Proxmox auf Intel NUC12WSHi5
      ioBroker: Debian (VM)
      CCU: Debmatic (VM)
      Influx: Debian (VM)
      Grafana: Debian (VM)
      eBus: Debian (VM)
      Zigbee: Debian (VM) mit zigbee2mqtt

      1 Reply Last reply
      0
      • Pascal BayP Pascal Bay

        @homoran Vielen Dank!

        Es läuft über RaspberryMatic sozusagen CCU2 Emulation. Ich habe folgendes Script verwedet.

        Voraussetzungen:

        • Wetterstation WS980WiFi (im Heimnetzwerk eingebunden)
        • CuxD installiert
        • Zugriff auf CCU / Raspberry per ssh, am kompfortabelsten mit SCP (WinSCP)

        Installation:

        • per SCP im Ordner /usr/local/addons einen Ordner /weather anlegen (Rechte auf 777 setzen)
        • dahin dann folgende 3 Dateien aus dem entpackten Archiv kopieren: weather.tcl, weatherini.tcl und weather.hexin (Rechte für jede Datei auf 777 setzen)
        • das Script script_create_var.sh einmalig ausführen (zB. neues Programm erzeugen, das Script ausführt - kann dann wieder gelöscht werden) - legt nur automatisch alle Variablen an
        • ein CuxD-Gerät System mit Funktion Timer anlegen (Icon egal, habe aber Wetterstation genommen)
        • Bei Geräteeinstellungen "TIMER_PRESET 60", "REPEAT angehakt", "CMD_EXE tclsh /usr/local/addons/weather/weather.tcl", "EXEC_FUNC system()", "EXEC_TIMEOUT 1"

        Script_Create_Var.sh

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #13

        @pascal-bay sagte: /usr/local/addons/weather/weather.tcl

        Wenn die Zeile vor "return $zahl" bei dir fehlt, dann füge sie ein.

        # - liest ein Word vom Binärstring liefert Zahl von -32768 bis 32768
        proc getw {idx} {
           global global_binout
           set sb [string index $global_binout $idx]
           scan $sb %c asciih
           set idx [expr $idx + 1]
           set sb [string index $global_binout $idx]  
           scan $sb %c asciil
           set zahl [expr $asciil + { $asciih * 256}]
           if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}
           return $zahl
        } 
        

        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

        Pascal BayP 1 Reply Last reply
        0
        • paul53P paul53

          @pascal-bay sagte: /usr/local/addons/weather/weather.tcl

          Wenn die Zeile vor "return $zahl" bei dir fehlt, dann füge sie ein.

          # - liest ein Word vom Binärstring liefert Zahl von -32768 bis 32768
          proc getw {idx} {
             global global_binout
             set sb [string index $global_binout $idx]
             scan $sb %c asciih
             set idx [expr $idx + 1]
             set sb [string index $global_binout $idx]  
             scan $sb %c asciil
             set zahl [expr $asciil + { $asciih * 256}]
             if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}
             return $zahl
          } 
          
          Pascal BayP Offline
          Pascal BayP Offline
          Pascal Bay
          wrote on last edited by
          #14

          @paul53 said in Aussentemperatur Wetterstation WS980Wifi in iobroker:

          if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}

          Vielen Dank! Bei mir sieht das so aus? Ein Tip, was ich ändern kann? Danke!

          Bildschirmfoto 2025-01-14 um 20.02.26.jpg

          HomoranH paul53P 2 Replies Last reply
          0
          • Pascal BayP Pascal Bay

            @paul53 said in Aussentemperatur Wetterstation WS980Wifi in iobroker:

            if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}

            Vielen Dank! Bei mir sieht das so aus? Ein Tip, was ich ändern kann? Danke!

            Bildschirmfoto 2025-01-14 um 20.02.26.jpg

            HomoranH Do not disturb
            HomoranH Do not disturb
            Homoran
            Global Moderator Administrators
            wrote on last edited by Homoran
            #15

            @pascal-bay sagte in Aussentemperatur Wetterstation WS980Wifi in iobroker:

            Ein Tip, was ich ändern kann?

            @paul53 sagte in Aussentemperatur Wetterstation WS980Wifi in iobroker:

            Wenn die Zeile vor "return $zahl" bei dir fehlt, dann füge sie ein.

            das ist

            if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}
            

            kein Support per PN! - Fragen im Forum stellen -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Reply Last reply
            0
            • Pascal BayP Pascal Bay

              @paul53 said in Aussentemperatur Wetterstation WS980Wifi in iobroker:

              if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}

              Vielen Dank! Bei mir sieht das so aus? Ein Tip, was ich ändern kann? Danke!

              Bildschirmfoto 2025-01-14 um 20.02.26.jpg

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #16

              @pascal-bay sagte: Bei mir sieht das so aus?

              Das ist die falsche Prozedur. Die richtige ist getw{idx}.

              EDIT: Woher ist deine "weather.tcl"? Die TCL-Datei aus "weatherV2b.zip" sieht anders aus. Anfang:

              #!/bin/tclsh
              
              load tclrega.so
              
              # - hier nur die IP Addresse anpassen
                set debug_mode 0
                set wait_between_status_requests 1
                set connection_timeout 500
                set wait_between_retries 200
                set status_retries 5
                set command_retries 10
                set matchport_host 192.168.0.129 
                set matchport_port 45000
              
              
              
              # - liest ein Byte vom Binärstring - liefert Zahl von 0 - 255
              proc getb {idx} {
                 global global_binout
                 set sb [string index $global_binout $idx]
                 scan $sb %c ascii
                 return $ascii
              }
              # - liest ein Word vom Binärstring liefert Zahl von -32768 bis 32768
              proc getw {idx} {
                 global global_binout
                 set sb [string index $global_binout $idx]
                 scan $sb %c asciih
                 set idx [expr $idx + 1]
                 set sb [string index $global_binout $idx]  
                 scan $sb %c asciil
                 set zahl [expr $asciil + { $asciih * 256}]
                 if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}
                 return $zahl
              } 
              # - liest ein Longword vom Binärstring und liefert Zahl von 0 - 4294967295
              proc getl {idx} {
                 global global_binout
                 set sb [string index $global_binout $idx]
                 scan $sb %c ascii3
                 set idx [expr $idx + 1]
                 set sb [string index $global_binout $idx]  
                 scan $sb %c ascii2
                 set idx [expr $idx + 1]
                 set sb [string index $global_binout $idx]  
                 scan $sb %c ascii1   
                 set idx [expr $idx + 1]
                 set sb [string index $global_binout $idx]  
                 scan $sb %c ascii0   
                 set zahl [expr $ascii0 + {$ascii1 * 256} + {$ascii2 * 65536} + {$ascii3 * 16777216}]
                 return $zahl
              }
              

              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

              Pascal BayP 1 Reply Last reply
              1
              • paul53P paul53

                @pascal-bay sagte: Bei mir sieht das so aus?

                Das ist die falsche Prozedur. Die richtige ist getw{idx}.

                EDIT: Woher ist deine "weather.tcl"? Die TCL-Datei aus "weatherV2b.zip" sieht anders aus. Anfang:

                #!/bin/tclsh
                
                load tclrega.so
                
                # - hier nur die IP Addresse anpassen
                  set debug_mode 0
                  set wait_between_status_requests 1
                  set connection_timeout 500
                  set wait_between_retries 200
                  set status_retries 5
                  set command_retries 10
                  set matchport_host 192.168.0.129 
                  set matchport_port 45000
                
                
                
                # - liest ein Byte vom Binärstring - liefert Zahl von 0 - 255
                proc getb {idx} {
                   global global_binout
                   set sb [string index $global_binout $idx]
                   scan $sb %c ascii
                   return $ascii
                }
                # - liest ein Word vom Binärstring liefert Zahl von -32768 bis 32768
                proc getw {idx} {
                   global global_binout
                   set sb [string index $global_binout $idx]
                   scan $sb %c asciih
                   set idx [expr $idx + 1]
                   set sb [string index $global_binout $idx]  
                   scan $sb %c asciil
                   set zahl [expr $asciil + { $asciih * 256}]
                   if {$zahl > 32767} then {set zahl ~[expr 65535 - $zahl]}
                   return $zahl
                } 
                # - liest ein Longword vom Binärstring und liefert Zahl von 0 - 4294967295
                proc getl {idx} {
                   global global_binout
                   set sb [string index $global_binout $idx]
                   scan $sb %c ascii3
                   set idx [expr $idx + 1]
                   set sb [string index $global_binout $idx]  
                   scan $sb %c ascii2
                   set idx [expr $idx + 1]
                   set sb [string index $global_binout $idx]  
                   scan $sb %c ascii1   
                   set idx [expr $idx + 1]
                   set sb [string index $global_binout $idx]  
                   scan $sb %c ascii0   
                   set zahl [expr $ascii0 + {$ascii1 * 256} + {$ascii2 * 65536} + {$ascii3 * 16777216}]
                   return $zahl
                }
                
                Pascal BayP Offline
                Pascal BayP Offline
                Pascal Bay
                wrote on last edited by
                #17

                @paul53 Einmal mehr Danke. Ich habe die weather.tcl aus WS980WiFiV2a also noch 2b. Es scheint aber, dass die Zeile da ist. Anbei der richtige Auszug getw{idx}.

                Bildschirmfoto 2025-01-15 um 09.52.15.jpg

                paul53P 1 Reply Last reply
                0
                • Pascal BayP Pascal Bay

                  @paul53 Einmal mehr Danke. Ich habe die weather.tcl aus WS980WiFiV2a also noch 2b. Es scheint aber, dass die Zeile da ist. Anbei der richtige Auszug getw{idx}.

                  Bildschirmfoto 2025-01-15 um 09.52.15.jpg

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #18

                  @pascal-bay sagte: Auszug getw{idx}.

                  Dann sollten negative Werte geliefert werden, denn aufgerufen wird die Prozedur für die Außentemperatur so:

                              set atemp [expr double([getw 10]) / 10]
                  

                  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

                  Pascal BayP 1 Reply Last reply
                  0
                  • paul53P paul53

                    @pascal-bay sagte: Auszug getw{idx}.

                    Dann sollten negative Werte geliefert werden, denn aufgerufen wird die Prozedur für die Außentemperatur so:

                                set atemp [expr double([getw 10]) / 10]
                    
                    Pascal BayP Offline
                    Pascal BayP Offline
                    Pascal Bay
                    wrote on last edited by
                    #19

                    @paul53 Danke. Sehe ich das richtig, dann ist mein getw{idx} richtig? Der Fehler muss also woanders liegen?

                    paul53P Pascal BayP 2 Replies Last reply
                    0
                    • Pascal BayP Pascal Bay

                      @paul53 Danke. Sehe ich das richtig, dann ist mein getw{idx} richtig? Der Fehler muss also woanders liegen?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #20

                      @pascal-bay sagte: Der Fehler muss also woanders liegen?

                      Sieht so aus.
                      Hast du die TCL-Datei ausgetauscht? Oben ist die globale Variable answer und im letzten Post ist sie global_binout.

                      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 Reply Last reply
                      0
                      • Pascal BayP Pascal Bay

                        @paul53 Danke. Sehe ich das richtig, dann ist mein getw{idx} richtig? Der Fehler muss also woanders liegen?

                        Pascal BayP Offline
                        Pascal BayP Offline
                        Pascal Bay
                        wrote on last edited by
                        #21

                        Du hast recht ich habe zwei TCL Dateien auf meinem Rechner. Ich gehe aber davon aus, dass die global_binout am laufen ist, denn alle anderen Werte werden korrekt in die Variablen gespeichert. Soll ich trotzdem versuchen mal die global_binout zu laden. Habe etwas Angst, dass dann der Rest auch nicht mehr läuft Klar wäre es super toll wenn ich das hin bekommen würde..... Danke für die Hilfe.

                        paul53P 1 Reply Last reply
                        0
                        • Pascal BayP Pascal Bay

                          Du hast recht ich habe zwei TCL Dateien auf meinem Rechner. Ich gehe aber davon aus, dass die global_binout am laufen ist, denn alle anderen Werte werden korrekt in die Variablen gespeichert. Soll ich trotzdem versuchen mal die global_binout zu laden. Habe etwas Angst, dass dann der Rest auch nicht mehr läuft Klar wäre es super toll wenn ich das hin bekommen würde..... Danke für die Hilfe.

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #22

                          @pascal-bay sagte: habe zwei TCL Dateien

                          Aber nicht als /usr/local/addons/weather/weather.tcl, die durch CUxD ausgeführt wird.

                          @pascal-bay sagte in Aussentemperatur Wetterstation WS980Wifi in iobroker:

                          global_binout am laufen ist

                          global_binout ist eine globale Variable innerhalb des TCL-Skriptes. Sie beinhaltet den kompletten Antwort-String der Wetterstation.

                          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

                          Pascal BayP 1 Reply Last reply
                          0
                          • paul53P paul53

                            @pascal-bay sagte: habe zwei TCL Dateien

                            Aber nicht als /usr/local/addons/weather/weather.tcl, die durch CUxD ausgeführt wird.

                            @pascal-bay sagte in Aussentemperatur Wetterstation WS980Wifi in iobroker:

                            global_binout am laufen ist

                            global_binout ist eine globale Variable innerhalb des TCL-Skriptes. Sie beinhaltet den kompletten Antwort-String der Wetterstation.

                            Pascal BayP Offline
                            Pascal BayP Offline
                            Pascal Bay
                            wrote on last edited by
                            #23

                            @paul53 Vielen Dank für die Antwort. Ich probiere es einmal aus und melde mich wieder wenn ich es hinbekommen habe oder nochmals auf Hilfe angewiesen bin.

                            1 Reply Last reply
                            0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better 💗

                            Register Login
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            348

                            Online

                            32.7k

                            Users

                            82.6k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Home
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe