Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Aussentemperatur Wetterstation WS980Wifi in iobroker

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Aussentemperatur Wetterstation WS980Wifi in iobroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      peterfido @Pascal Bay last edited by

      @pascal-bay Wer fragt denn die Wetterstation ab? Da ist statt eines INT ein WORD oder U_INT genutzt worden.

      1 Reply Last reply Reply Quote 1
      • paul53
        paul53 @Pascal Bay last edited by 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 1 Reply Last reply Reply Quote 1
        • P
          peterfido @paul53 last edited by

          @paul53 Die habe ich auch schon gesucht.

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

            @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 Bay 1 Reply Last reply Reply Quote 0
            • Pascal Bay
              Pascal Bay @paul53 last edited by

              @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

              Homoran paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Pascal Bay last edited by Homoran

                @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]}
                
                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Pascal Bay last edited by 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 Bay 1 Reply Last reply Reply Quote 1
                  • Pascal Bay
                    Pascal Bay @paul53 last edited by

                    @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

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

                      @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 Bay 1 Reply Last reply Reply Quote 0
                      • Pascal Bay
                        Pascal Bay @paul53 last edited by

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

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

                          @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.

                          1 Reply Last reply Reply Quote 0
                          • Pascal Bay
                            Pascal Bay @Pascal Bay last edited by

                            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.

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Pascal Bay last edited by 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 Bay 1 Reply Last reply Reply Quote 0
                              • Pascal Bay
                                Pascal Bay @paul53 last edited by

                                @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 Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                930
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                5
                                23
                                718
                                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