Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. [Gelöst]ObjectId (von Wiffi-WZ-Adapter) triggert Script nicht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    SOLVED [Gelöst]ObjectId (von Wiffi-WZ-Adapter) triggert Script nicht

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

      @coyote sagte:

      Jetzt kommt im log: falsestring

      Da haben wir es: Die Abfrage muss lauten

         if (sonne == 'false') {
      
      coyote 1 Reply Last reply Reply Quote 0
      • coyote
        coyote Most Active @paul53 last edited by

        @paul53 ja nach deiner Erweiterung des Logs, war mir das auch fast klar, nur stimmt doch dann im Adapter was nicht oder?
        Soll ja eigentlich kein String sein, sonder ein bool Wert

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

          @coyote sagte:

          Soll ja eigentlich kein String sein, sonder ein bool Wert

          Welchen Typ hat der Datenpunkt ?

          coyote 1 Reply Last reply Reply Quote 0
          • coyote
            coyote Most Active @paul53 last edited by

            @paul53 Typ ist "state" und laut Raw Daten ein "boolean" Wert. Das wundert mich ja so.

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

              @coyote sagte:

              ein "boolean" Wert.

              Dann liegt der Fehler im Adapter.

              coyote 1 Reply Last reply Reply Quote 0
              • coyote
                coyote Most Active @paul53 last edited by

                @paul53 denke auch, hier nochmal die Raw Daten:

                {
                  "user": "system.user.admin",
                  "from": "system.adapter.wiffi-wz.0",
                  "ts": 1559584147719,
                  "common": {
                    "name": 16,
                    "desc": "sonne_scheint",
                    "unit": "",
                    "role": "indicator",
                    "id": "w_sonne_scheint",
                    "type": "boolean",
                    "read": true,
                    "write": false
                  },
                  "native": {},
                  "acl": {
                    "object": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator",
                    "state": 1636
                  },
                  "_id": "wiffi-wz.0.root.192_168_66_134.w_sonne_scheint",
                  "type": "state"
                }
                
                smartboart 2 Replies Last reply Reply Quote 0
                • smartboart
                  smartboart @coyote last edited by smartboart

                  @coyote
                  habe das selbe Problem seit dem Update des Weatherman auf die neuste Firmware...
                  hab die ganze Nacht nach dem Problem gesucht...
                  hier ein Screenshot mit dem Unterschied der Raw Daten zu alt und Neu...bei neuer FW kam eine Reihe hinzu...

                  neu.PNG alt.PNG

                  Denke der Adapter muss hier an die neue FW des Weatherman angepasst werden...
                  Beispiel geht nicht:
                  var Regen beachten

                  if (Regen ===true || Sturm > 3 || (working === false && Pos > 1 && Rolladen === 0 && Sonne === false && Automatik))  {
                  			    setState(idMarkise, 0);
                  

                  Beispiel geht:
                  var Regen beachten

                  if (Regen || Sturm > 3 || (working === false && Pos > 1 && Rolladen === 0 && Sonne === false && Automatik))  {
                  			    setState(idMarkise, 0);
                  
                  if (Regen === 'true' || Sturm > 3 || (working === false && Pos > 1 && Rolladen === 0 && Sonne === false && Automatik))  {
                  			    setState(idMarkise, 0);
                  
                  1 Reply Last reply Reply Quote 0
                  • smartboart
                    smartboart @coyote last edited by

                    @coyote sind alle States des wheatherman davon betroffen?

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

                      @smartboart Das lässt sich mit einem Testskript leicht überprüfen.

                      function checkType(id) {
                         log('ID: ' + id + ' Solltyp: ' + getObject(id).common.type + ' Isttyp: ' + typeof getState(id).val);
                      }
                      
                      // richtige Datenpunkt-IDs einsetzen !
                      checkType('1. ID');
                      checkType('2. ID');
                      // usw.
                      
                      smartboart 1 Reply Last reply Reply Quote 0
                      • smartboart
                        smartboart @paul53 last edited by smartboart

                        @paul53 said in [Gelöst]ObjectId (von Wiffi-WZ-Adapter) triggert Script nicht:

                        function checkType(id) {

                        Danke werde es mal testen. Bis jetzt weiss ich aber das auch Zahlenwerte betroffen sind...Windstärke , Feuchtigkeit,Temperatur usw...
                        Im Prinzip muss ich alle meine Skript anpassen in welchen ich die States des Weatherman verwende...Hätte das FW Update lassen sollen. Der Grund war eben die bessere Regenerkennung...

                        Hab den Entwickler mal angeschrieben ob er was machen möchte...Hatte seiner Zeit den Waetherman für ihn getestet bzw. die Integration des Weatherman in den Adapter...
                        Update:

                        Hier der Log der Datenpunkte welche ich verwende..

                        8:53:07.319	info	javascript.0 Start javascript script.js.common.Test.Test
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: ID: wiffi-wz.0.root.192_168_1_52.w_regenmelder Solltyp: boolean Isttyp: string
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: ID: wiffi-wz.0.root.192_168_1_52.w_windstaerke Solltyp: number Isttyp: string
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: ID: wiffi-wz.0.root.192_168_1_52.w_lux Solltyp: number Isttyp: string
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: ID: wiffi-wz.0.root.192_168_1_52.w_sonne_scheint Solltyp: boolean Isttyp: string
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: ID: wiffi-wz.0.root.192_168_1_52.w_temperatur Solltyp: number Isttyp: string
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: ID: wiffi-wz.0.root.192_168_1_52.w_feuchte_rel Solltyp: number Isttyp: string
                        18:53:07.320	info	javascript.0 script.js.common.Test.Test: registered 0 subscriptions and 0 schedules
                        
                        
                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @smartboart last edited by paul53

                          @smartboart sagte:

                          Hier der Log der Datenpunkte

                          Offenbar werden alle Werte als String geliefert. Bei Zahlen hilft parseFloat(), bei boolean Werten kann man die undokumentierte Funktion toBoolean() des JS-Adapters nutzen.

                          smartboart 1 Reply Last reply Reply Quote 0
                          • coyote
                            coyote Most Active last edited by

                            @smartboart aha ok, gut dass du mal alle Datenpunkte angeschaut hast. Es kommt ja dann wohl alles als String zurück. Welche Version hast du auf dem weatherman? 107? Der Adapterentwickler ist aber wohl auch dran, zumindest gibt es ein Issue auf GitHub, da hab ich auch schon was dazu geschrieben. Ich sollte eine neue Version testen, jedoch war es da unverändert, die Werte waren immer noch String

                            smartboart 1 Reply Last reply Reply Quote 0
                            • smartboart
                              smartboart @coyote last edited by smartboart

                              @coyote ja die 107...hatte mich lange gegen ein update gewehrt, weil ab einem bestimmten Update auch state Namen geändert wurden. Deshalb kann ich nicht sagen obe auch vorherige Versionen davon betroffen sind... Der Wiffi WZ macht immernoch alles wie er soll mit der neusten Firmware..

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

                                @paul53 ja im moment helfe ich mir indem ich überall ein hochkomma setze..
                                'true' / 'Zahl' / 'false'

                                Das scheint zu funktionieren...

                                paul53 1 Reply Last reply Reply Quote 0
                                • coyote
                                  coyote Most Active @smartboart last edited by

                                  @smartboart OK hab auch die 107 drauf. Ja das stimmt, da ist bisschen was geändert worden, der Adapter Entwickler von wiffi-wz weiß das aber auch und die Namen müssten dort auch schon angepasst sein, nur die Werte passen eben noch nicht bzw der Typ

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

                                    @smartboart sagte:

                                    indem ich überall ein hochkomma setze..

                                    Und wenn die nächste Version Zahlen und boolsche Werte liefert, machst Du alles wieder rückgängig ? Die Umwandlung stört auch nicht, wenn es keine Strings sind.

                                    Der Vergleich

                                    Sturm > '3'
                                    

                                    wird nicht funktionieren, da z.B. '10' kleiner ist als '3'.

                                    smartboart 1 Reply Last reply Reply Quote 0
                                    • coyote
                                      coyote Most Active last edited by

                                      Ja so habe ich es momentan auch gelöst.

                                      Was mich etwas wundert ist, dass laut JSON das in iobroker ankommt, die Typen eigentlich auch richtig sind.
                                      Schaut:

                                      Full message: {"modultyp":"weatherman","vars":[{"name":"0","homematic_name":"w_ip","desc":"weatherman_ip","type":"string","unit":"","value":"192.168.66.134"},{"name":"1","homematic_name":"w_temperatur","desc":"aussentemperatur","type":"number","unit":"gradC","value":"25.8"},{"name":"21","homematic_name":"w_windchill","desc":"gefuehlte_temperatur","type":"number","unit":"gradC","value":"25.8"},{"name":"9","homematic_name":"w_taupunkt","desc":"taupunkt_temperatur","type":"number","unit":"gradC","value":"10.4"},{"name":"14","homematic_name":"w_himmeltemperatur","desc":"himmel_temperatur","type":"number","unit":"gradC","value":"0.0"},{"name":"2","homematic_name":"w_feuchte_rel","desc":"rel_feuchte","type":"number","unit":"%","value":"38.0"},{"name":"17","homematic_name":"w_feuchte_abs","desc":"abs_feuchte","type":"number","unit":"g/m3","value":"9.1"},{"name":"18","homematic_name":"w_regensensor_wert","desc":"regenmelderwert","type":"number","unit":"","value":"5"},{"name":"7","homematic_name":"w_regenmelder","desc":"regenstatus","type":"boolean","unit":"","value":"false"},{"name":"8","homematic_name":"w_regenstaerke","desc":"regenstaerke","type":"number","unit":"mm/h","value":"0.0"},{"name":"19","homematic_name":"w_regen_letzte_h","desc":"regen_pro_h","type":"number","unit":"mm","value":"0.0"},{"name":"20","homematic_name":"w_regen_mm_heute","desc":"regen_mm_heute","type":"number","unit":"mm","value":"519.0"},{"name":"32","homematic_name":"w_regenstunden_heute","desc":"regenstunden_heute","type":"number","unit":"h","value":"0.0"},{"name":"27","homematic_name":"","desc":"regen_mm_gestern","type":"number","unit":"mm","value":"1245.5"},{"name":"3","homematic_name":"w_barometer","desc":"nn_luftdruck","type":"number","unit":"mb","value":"1300.00"},{"name":"11","homematic_name":"w_barotrend","desc":"luftdrucktrend","type":"string","unit":"","value":"bitte_warten"},{"name":"4","homematic_name":"w_wind_mittel","desc":"avg_windgeschwindigkeit","type":"number","unit":"m/s","value":"0.6"},{"name":"5","homematic_name":"w_wind_spitze","desc":"peak_windgeschwindigkeit","type":"number","unit":"m/s","value":"0.8"},{"name":"24","homematic_name":"w_windstaerke","desc":"bft_windgeschwindigkeit","type":"number","unit":"bft","value":"1"},{"name":"23","homematic_name":"w_windrichtung","desc":"windrichtung","type":"string","unit":"","value":"W"},{"name":"6","homematic_name":"w_wind_dir","desc":"windwinkel","type":"number","unit":"grad","value":"270"},{"name":"10","homematic_name":"w_lux","desc":"helligkeit","type":"number","unit":"lux","value":"11374.0"},{"name":"22","homematic_name":"w_sonne_diff_temp","desc":"sonnen_difftemperatur","type":"number","unit":"gradC","value":"13.6"},{"name":"15","homematic_name":"","desc":"sonnen_temperatur","type":"number","unit":"gradC","value":"39.4"},{"name":"16","homematic_name":"w_sonne_scheint","desc":"sonne_scheint","type":"boolean","unit":"","value":"true"},{"name":"26","homematic_name":"w_sonnenstunden_heute","desc":"Sonnenstunden_heute","type":"number","unit":"h","value":"0.8"},{"name":"12","homematic_name":"w_elevation","desc":"sonne_elevation","type":"number","unit":"grad","value":"47.2"},{"name":"13","homematic_name":"w_azimut","desc":"sonne_azimut","type":"number","unit":"grad","value":"112.8"},{"name":"30","homematic_name":"w_minuten_vor_sa","desc":"minuten_vor_sa","type":"number","unit":"min","value":"-307"},{"name":"31","homematic_name":"w_minuten_vor_su","desc":"minuten_vor_su","type":"number","unit":"min","value":"650"}]
                                      
                                      
                                      paul53 1 Reply Last reply Reply Quote 0
                                      • smartboart
                                        smartboart @paul53 last edited by

                                        @paul53 said in [Gelöst]ObjectId (von Wiffi-WZ-Adapter) triggert Script nicht:

                                        Der Vergleich
                                        Sturm > '3'

                                        wird nicht funktionieren, da z.B. '10' kleiner ist als '3'.

                                        ok, dann habe ich deine Erklärung nicht ganz verstanden...Welche andere Möglichkeit / Workaround gibt es dazu?

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

                                          @coyote sagte:

                                          die Typen eigentlich auch richtig sind.

                                          Nein, das sind sie nicht. Die Werte werden alle in Anführungszeichen übergeben, z.B. "regen_mm_heute": "value":"519.0". Richtig wäre "value":519.0

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

                                            @smartboart sagte:

                                            Welche andere Möglichkeit / Workaround gibt es dazu?

                                            Da ich nur einen kleinen Teil des Skripts kenne, am Beispiel Sonne:

                                               var sonne = toBoolean(getState('wiffi-wz.0.root.192_168_66_134.w_sonne_scheint'/*16*/).val);
                                            

                                            Bei Zahlen entsprechend

                                               var Sturm = parseFloat(getState('wiffi-wz.0.root.192_168_66_134.w_windstaerke).val);
                                            
                                            smartboart 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            796
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            datenpunkte problem script wiffi-wz
                                            3
                                            37
                                            1669
                                            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