Ankündigung

Einklappen
Keine Ankündigung bisher.

basic.formula geht nicht mehr in 2.8?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    basic.formula geht nicht mehr in 2.8?

    Servus,

    in der 2.7 funktionierte noch folgendes
    {{ basic.formula('eg.kueche.rolladen_terasse.position ', ['eg.kueche.rolladen_terasse.position'], '%', 'VAR1*10/255') }}

    In der 2.8 wird in der Visu nur noch --- angezeigt.

    In der Doku der 2.8 ist es das Gleiche:
    http://docu.smartvisu.de/2.8/index.p..._basic.formula

    Ich vermute das hier der echte Code verwendet wird und tatsächlich --- rauskommt. In der Doku zur 2.7 wird ein Wert angezeigt.
    http://docu.smartvisu.de/2.7/index.p..._basic.formula

    Ist das ein Bug?

    Ciao Hochpass
    Zapft ihr Narren der König hat Durst

    #2
    Ich kann im Quellcode keine Änderungen an basic.formula finden.
    Kannst du jede andere Ursache ausschliessen bzw. läuft bei dir 2.7 und 2.8 parallel und in 2.7 funktioniert es noch?

    Dass in der Online-Doku nichts angezeigt wird, hat übrigens einen anderen Grund. Dort sind keine Werte hinterlegt (auch bei anderen Widgets, z.B. basic.shifter).
    Das kann aber nur Apollo korrigieren.
    Wenn ich bei mir lokal auf die Doku-Pages wechsle, funktioniert basic.formula.

    Kommentar


      #3
      Ja ich habe 2 PIs parallel laufen bis der Umstieg geschafft ist. In der 2.7 bekomme ich einen Wert.
      Aber langsam hab ich das Gefühl, dass die Visu wie im anderen Thread nicht alle Items holt.

      Ich habe das smarthomeNG backend gestartet und da hat "eg.kueche.rolladen_terasse.position" den Wert 255

      Ich nutze übrigens das Image vom Onkelandy.

      Zapft ihr Narren der König hat Durst

      Kommentar


        #4
        So ich hab auch nochmal getestet.

        Ich habe nochmal das basic.formula separiert aufgebaut.
        Im Anhang was ich gemacht hab.

        - 1.3 image vom Onkelandy
        - die Smarthome Visu Seiten hergenommen und die index.html erweitert mit basic.formula und basic.value
        - 2 Items erstellt
        - Im Backend und auf der Visu die Seiten angeschaut und verändert


        1. basic.formula geht gar nicht. Ergebnis ---
        2. basic.value geht beim Aufruf der Seite auch nicht und zeigt ---
        Verändert man über das Backend den Wert des Items og.schlafzimmer.rolladen.position triggert og.schlafzimmer.rolladen.position_prozent und berechnet das Item neu. Wenn die Seite schon geladen war, dann erscheint ein Wert in basic.value auf der Visu.

        basic.formula zeigt weiterhin ---

        Wo steckt der Bug?
        Angehängte Dateien
        Zapft ihr Narren der König hat Durst

        Kommentar


          #5
          Auf Develop umgestellt-> Hilft nicht.

          An der Plugin.conf gespielt:
          Code:
          [websocket]
              class_name = WebSocket
              class_path = plugins.visu_websocket
              ip = 192.168.1.46
               port = 2424
          #    tls = no
               wsproto = 4
               acl = rw
          -> Hilft nicht!
          Zapft ihr Narren der König hat Durst

          Kommentar


            #6
            Hast Du
            Code:
            [sql]
                class_name = SQL
                class_path = plugins.sqlite_visu2_8
            in der Plugin.conf? Was sagt denn der Debugmodus vom SmartHomeNG?

            Kommentar


              #7
              Ja der SQL Eintrag ist auch richtig drin. Plots gehen.

              Log ist im Anhang.
              Angehängte Dateien
              Zapft ihr Narren der König hat Durst

              Kommentar


                #8
                Im Log steht z.B.
                Code:
                [B]2016-11-15  17:57:44 WARNING  Main         SQLite: problem updating eg.wohnzimmer.heizung.temperatur: attempt to write a readonly database[/B]
                drin.
                Sieht für mich erstmal nach einem Rechteproblem aus. Überprüfe mal Deine Datenbankrechte. Wenn die z.B. auf root die Rechte hat, das SmartHomeNG aber als User und Gruppe smarthome läuft, dann geht das nicht.

                Wenn Das behoben ist, dann mach doch mal einen Ausschnitt vom Debuglog wenn Du die fragliche Seite im Browser aufrufst.

                Kommentar


                  #9
                  - So, die Rechte der Datenbank in Ordnung gebracht. Warning ist verschwunden.
                  - Items mit set durch soll ersetzt (schlüsselwort von python)
                  -> basic.formula zeigt nichts.

                  - Log vom Aufruf der Ursprünglichen Seite im Anhang.
                  Angehängte Dateien
                  Zapft ihr Narren der König hat Durst

                  Kommentar


                    #10
                    Log vom Aufruf einer Seite mit nur einer basic.formula

                    Code:
                    2016-11-15  23:47:01 DEBUG    Main         _websocket: incoming connection from 192.168.1.20:58295 to 192.168.1.46:2424
                    2016-11-15  23:47:01 INFO     Main         VISU: Websocket handler uses protocol version 4
                    2016-11-15  23:47:01 DEBUG    Main         rfc6455 Handshake
                    2016-11-15  23:47:02 DEBUG    Main         192.168.1.20:58295 sent '{"cmd":"proto","ver":4}'
                    2016-11-15  23:47:02 DEBUG    Main         192.168.1.20:58295 sent '{"cmd":"identity","sw":"smartVISU","ver":"v2.8","browser":"Firefox","bver":"49"}'
                    2016-11-15  23:47:02 DEBUG    Main         VISU json_parse: received 'identify' from 192.168.1.20:58295: {'bver': '49', 'ver': 'v2.8', 'browser': 'Firefox', 'cmd': 'identity', 'sw': 'smartVISU'}
                    2016-11-15  23:47:02 DEBUG    Main         192.168.1.20:58295 sent '{"cmd":"monitor","items":["og.schlafzimmer.rolladen.position"]}'
                    2016-11-15  23:47:02 DEBUG    Main         VISU json_parse: send to 192.168.1.20:58295: {'items': [['og.schlafzimmer.rolladen.position', 255]], 'cmd': 'item'}
                    Zapft ihr Narren der König hat Durst

                    Kommentar


                      #11
                      Was auch komisch ist, wenn ich die Seite im Browser öffne und die Ausgabe in der Konsole anschaue gibt es einen ReferenceError: formula is not defined

                      Code:
                      GET
                      http://192.168.1.46/smartvisu/index.php [HTTP/1.1 200 OK 15465ms]
                      GET
                      http://192.168.1.46/smartvisu/vendor/jquery.mobile/jquery.mobile.structure-1.3.2.min.css [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/vendor/jquery/jquery-2.0.3.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/vendor/jquery.mobile/jquery.mobile-1.3.2.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/lib/base/jquery.mobile.slider.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/vendor/plot.highcharts/highcharts.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/designs/ice.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/widgets/widget.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/lib/base/base.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/driver/io_smarthome.py.min.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/designs/ice.min.css [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/pages/base/base.css [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/pages/zuhaus/visu.js [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/pages/zuhaus/visu.css [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_10.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_100.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_manual.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/message_ok.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/time_timer.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/icons/sw/sani_floor_heating.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46/smartvisu/lib/base/base.php [HTTP/1.1 200 OK 41ms]
                      Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead[Weitere Informationen]jquery-2.0.3.min.js:1
                      Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead[Weitere Informationen]jquery.mobile-1.3.2.min.js:7
                      Leerer String an getElementById() übergeben.jquery.mobile-1.3.2.min.js:6:14926
                      getPreventDefault() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen defaultPrevented.jquery-2.0.3.min.js:5:12747
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/control_all_on_off.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_100.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/time_timer_switch.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_100.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/control_on_off.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/message_error.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/weather_sun.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/icons/sw/fts_shutter_automatic.svg [HTTP/1.1 200 OK 0ms]
                      GET
                      http://192.168.1.46:2424/ [HTTP/1.1 101 Switching Protocols 68ms]
                      Synchrone XMLHttpRequests am Haupt-Thread sollte nicht mehr verwendet werden, weil es nachteilige Effekte für das Erlebnis der Endbenutzer hat. Für weitere Hilfe siehe http://xhr.spec.whatwg.org/io_smarthome.py.min.js:3:49
                      GET
                      XHR
                      http://192.168.1.46/smartvisu/driver/io_smarthome_get_visuinfo.php [HTTP/1.1 200 OK 22ms]
                      ReferenceError: formula is not defined
                      [Weitere Informationen]widget.min.js%20line%209%20%3E%20eval:1:1
                      Zapft ihr Narren der König hat Durst

                      Kommentar


                        #12
                        Zitat von Hochpass Beitrag anzeigen
                        http://192.168.1.46/smartvisu/driver...t_visuinfo.php [HTTP/1.1 200 OK 22ms]
                        ReferenceError: formula is not defined
                        [Weitere Informationen]widget.min.js%20line%209%20%3E%20eval:1:1
                        Das hat geholfen, ich habe die Ursache gefunden!

                        VAR1 funktioniert in 2.8 nicht, wenn man die widget.min.js verwendet (was der Normalfall ist).

                        In deinem Fall kannst du den Fehler umgehen, indem du VAR statt VAR1 verwendest:
                        Code:
                        {{ basic.formula('eg.kueche.rolladen_terasse.position ', ['eg.kueche.rolladen_terasse.position'], '%', '[COLOR=#FF0000]VAR[/COLOR]*10/255') }}
                        Mich überrascht jedoch sehr, dass dies in 2.7 funktionieren soll. In 2.7 gab es das VAR1 doch noch gar nicht.
                        Bzw. würde in 2.7 hinter deinen Wert einfach eine 1 geschrieben, was sicher falsch wäre.
                        Das VAR1 hat also, zumindest in einem offiziellen Release, nie funktioniert.

                        Technische Erklärung:

                        In der widget.js wird eine zuvor definierte Variable als String in einem eval verwendet:
                        Code:
                        var formula = $(this).attr('data-formula');
                        ...
                        eval('formula.replace(/' + myVar + '/g, response[i]);');
                        Beim Minifizieren wird das nun umgewandelt in:
                        Code:
                        m=$(this).attr("data-formula");
                        ...
                        eval('formula.replace(/' + myVar + '/g, response[i]);');
                        Deshalb ist die Variable formula im eval dann nicht vorhanden.

                        Das eval da ist eh eine schreckliche Lösung, weil der damalige Entwickler wohl nicht gewusst hat, wie man eine RegEx dynamische aufbauen kann.

                        Kommentar


                          #13
                          Oh man kleine Ursache und große Wirkung!!!

                          Ich danke dir vielmals, jetzt kann ich endlich auf 2.8 produktiv umsteigen. Jetzt werden auf der Seite auf der die formula nicht ging auch alle Items aktualisiert! Gibt es da einen Zusammenhang wenn ein widget falsch umgesetzt ist, dass andere auf der Seite auch nicht funktionieren?

                          Ich hab scheinbar die Doku falsch verstanden.

                          http://docu.smartvisu.de/2.8/index.p..._basic.formula

                          Wenn jetzt mehrere Items in der Formel angegeben werden wie löst man das dann mit der eindeutigen Zuordnung wenn VAR1 VAR2... nicht geht?
                          Zapft ihr Narren der König hat Durst

                          Kommentar


                            #14
                            Zitat von Hochpass Beitrag anzeigen
                            Gibt es da einen Zusammenhang wenn ein widget falsch umgesetzt ist, dass andere auf der Seite auch nicht funktionieren?
                            Spontan hätte ich gesagt nein, die Exception in der einen Funktion sollte die weiteren Events nicht verhindern. Aber es kann gut sein, dass ich mich da irre.

                            Zitat von Hochpass Beitrag anzeigen
                            Wenn jetzt mehrere Items in der Formel angegeben werden wie löst man das dann mit der eindeutigen Zuordnung wenn VAR1 VAR2... nicht geht?
                            Leider gar nicht - aber ich werde das natürlich korrigieren (erfasst als Issue 119).


                            Kommentar


                              #15
                              So, ist erledigt. Habe es in master und develop Branch gefixt.
                              VAR1, ... sollte nun also funktionieren.

                              Kommentar

                              Lädt...
                              X