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. Off Topic
  4. Aussentemperatur Wetterstation WS980Wifi in iobroker

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Aussentemperatur Wetterstation WS980Wifi in iobroker

Geplant Angeheftet Gesperrt Verschoben Off Topic
23 Beiträge 5 Kommentatoren 1.5k Aufrufe 3 Watching
  • Ä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.
  • mcm1957M mcm1957

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

    @homoran Die Variable ist durch das Script generiert worden und befindet sich auf der CCU2 Oberfläche unter Variablen.

    Ohne jetzt CCU oder rasperrymatic zu kennen:
    Der Fehler deutet stark darauf hin, dass eine Variable als UNSIGNED Zahl angelegt wurde und mit einerm SIGNED Wert befüllt wird. Die Variable für die Temperatur sollte wohl jedenfalls SIGNED sein.

    Pascal BayP Offline
    Pascal BayP Offline
    Pascal Bay
    schrieb am zuletzt editiert von
    #7

    @mcm1957 Vielen Dank, kann mir jemand helfen wo ich bei der CCU2 Variable auf SIGNED Variable wechseln kann? Danke

    HomoranH 1 Antwort Letzte Antwort
    0
    • Pascal BayP Pascal Bay

      @mcm1957 Vielen Dank, kann mir jemand helfen wo ich bei der CCU2 Variable auf SIGNED Variable wechseln kann? Danke

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #8

      @pascal-bay ich denke mal dass das eigentlich mit der Angabe negativer Werte von min passieren sollte.
      Etwas anderes passendes als "Zahl" bei Typ gibt es IMHO nicht.

      Aber meine Vermutung ist, dass deine CuxD Anbindung da schief läuft.

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      Pascal BayP 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @pascal-bay ich denke mal dass das eigentlich mit der Angabe negativer Werte von min passieren sollte.
        Etwas anderes passendes als "Zahl" bei Typ gibt es IMHO nicht.

        Aber meine Vermutung ist, dass deine CuxD Anbindung da schief läuft.

        Pascal BayP Offline
        Pascal BayP Offline
        Pascal Bay
        schrieb am zuletzt editiert von
        #9

        @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

        P paul53P 2 Antworten Letzte Antwort
        0
        • 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

          P Offline
          P Offline
          peterfido
          schrieb am zuletzt editiert von
          #10

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

          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 Antwort Letzte Antwort
          1
          • 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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antworten Letzte Antwort
                  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 Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von 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 - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #19

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

                            paul53P Pascal BayP 2 Antworten Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #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 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

                                    309

                                    Online

                                    32.6k

                                    Benutzer

                                    82.0k

                                    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