Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Schalten in Visu

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

    - √ - Schalten in Visu

    Ich habe die Visu so konfiguriert, dass ich einen Toggle für eine Lampe angezeigt bekomme. Das Schalten des Toggles scheint aber nicht übertragen zu werden.

    In der Doku steht, dass der Websocket initialisiert werden soll:
    "You have to initialise the javascript to connect to the backbone. You could do this with shInit("ws://"+ location.host + ":2121/"); which tries to open a WebSocket connection to the host (webserver) on port 2121."

    Wo schreibe ich das shInit rein?

    Grüße,
    Michael
    Viele Grüße,
    Michael

    #2
    Hallo katmic,
    der Port ist in der Datei /var/www/js/my.smarthome.js voreingestellt.
    Ich musste den Port bei mir allerdings ändern da der owhttpd Service den Port schon belegt:
    Code:
    root@raspberrypi:/usr/local/smarthome/items# netstat -tnlp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:6720            0.0.0.0:*               LISTEN      2178/eibd
    tcp        0      0 0.0.0.0:2120            0.0.0.0:*               LISTEN      1914/owftpd
    tcp        0      0 0.0.0.0:2121            0.0.0.0:*               LISTEN      1932/owhttpd
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      2271/python
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1889/lighttpd
    tcp        0      0 127.0.0.1:4304          0.0.0.0:*               LISTEN      1850/owserver
    tcp        0      0 0.0.0.0:2323            0.0.0.0:*               LISTEN      2271/python
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2012/sshd
    Mit dem netstat Befehl kannst du als root sehen welcher Prozess welchen Port öffnet. Bei mir hat python (smarthome.py) jetzt Port 8080, da der owhttpd ja den Port 2121 schon nutzt. Vielleicht hast du ja ein ähnliches Problem.

    @All:
    Vielleicht kann man ja den Standardport in SH ändern um solche Fallen für Einsteiger zu vermeiden oder würde das in Bestandsinstallationen zuviel durcheinander bringen?

    Gruß Felix

    Kommentar


      #3
      Hallo Felix,

      danke für die Rückmeldung! Der 2121 Dienst scheint aber korrekt zu laufen:

      Code:
      mrhouse@hoelderlin:/usr/local/smarthome/var/log$ sudo netstat -tnlp
      Active Internet connections (only servers)
      Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
      tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      930/Xvnc4       
      tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      30691/perl      
      tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      30691/perl      
      tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      938/sshd        
      tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      11372/master    
      tcp        0      0 0.0.0.0:6720            0.0.0.0:*               LISTEN      810/eibd        
      tcp        0      0 0.0.0.0:2121            0.0.0.0:*               LISTEN      6367/python     
      tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30691/perl      
      tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28372/apache2   
      tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      1270/perl       
      tcp6       0      0 :::22                   :::*                    LISTEN      938/sshd        
      tcp6       0      0 :::445                  :::*                    LISTEN      595/smbd        
      tcp6       0      0 :::139                  :::*                    LISTEN      595/smbd        
      tcp6       0      0 :::5901                 :::*                    LISTEN      930/Xvnc4       
      mrhouse@hoelderlin:/usr/local/smarthome/var/log$
      In der Konsole des Firefox sehe ich gar nicht, dass eine Verbindung beim Klicken aufgemacht wird. Ist denn der generierte HTML-Code ok?

      Code:
      <!DOCTYPE html> <html>     <head>         <meta charset="utf-8" />         <meta name="viewport" content="width=device-width, initial-scale=1" />         <meta name="apple-mobile-web-app-capable" content="yes" />         <meta name="apple-mobile-web-app-status-bar-style" content="black" />         <title>SH.py - Hoelderlin</title>         <link rel="stylesheet" href="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/css/jquery.mobile.min.css"]/css/jquery.mobile.min.css[/URL]" />         <link rel="stylesheet" href="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/css/my.css"]/css/my.css[/URL]" />         <script src="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/js/jquery.min.js"]/js/jquery.min.js[/URL]"></script>         <script src="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/js/jquery.mobile.min.js"]/js/jquery.mobile.min.js[/URL]"></script>         <script src="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/js/jquery.flot.min.js"]/js/jquery.flot.min.js[/URL]"></script>         <script src="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/js/jquery.flot.time.min.js"]/js/jquery.flot.time.min.js[/URL]"></script>         <script src="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/js/smarthome.min.js"]/js/smarthome.min.js[/URL]"></script>         <script src="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/js/my.smarthome.js"]/js/my.smarthome.js[/URL]"></script>     </head> <body> <div data-role="page" id="Arbeitszimmer">     <div data-role="header"><h3>Arbeitszimmer</h3></div>     <div data-role="content">  <div data-role="fieldcontain">     <label for="Arbeitszimmer_Deckenlampe">Deckenlampe</label>     <select id="Arbeitszimmer_Deckenlampe" data-sh="Arbeitszimmer.Deckenlampe" data-role="slider"><option value="off">Off</option><option value="on">On</option></select> </div>      </div> <!-- /content -->     <div data-role="footer" data-position="fixed">         <div data-role="navbar" data-iconpos="top">             <ul>                 <li><a href="[URL="https://knx-user-forum.de/view-source:http://hoelderlin/gen/"]/gen/[/URL]" rel="external">Back</a></li>             </ul>         </div><!-- /navbar -->     </div><!-- /footer --> </div><!-- /page -->  </body> </html>
      Und hier noch die Definition im knx.conf unter items. Auf der Startseite habe ich u.a. den Eintrag "Arbeitszimmer", der mir dann eine Seite öffnet. Diese Seite enthält den definierten Toggle Arbeitszimmer.Deckenlampe.

      Code:
      ['Arbeitszimmer']
              name = Arbeitszimmer
             [['Deckenlampe']]
                name = Deckenlampe
                  type = bool
                  knx_dpt = 1
                  knx_send = 3/6/0
                  knx_listen = 3/6/0
                  knx_init = 3/6/0
                  visu = toggle

      Grüße,
      Michael
      Viele Grüße,
      Michael

      Kommentar


        #4
        Hallo Michael,

        poste doch bitte mal das Logfile und die etc/plugin.conf


        Danke

        Marcus

        Kommentar


          #5
          Hallo Marcus,

          hier die plugin.conf:

          Code:
          # /usr/local/smarthome/etc/plugin.conf
          
          #[notify] # object instance name e.g. sh.notify
          #    class_name = Prowl # class name of the python class
          #    class_path = plugins.prowl # path to the plugin
          #    apikey = abc123abc123 # attribute for the plugin e.g. secret key for prowl
              
          
          [knx]
             class_name = KNX
             class_path = plugins.knx
          #   host = 127.0.0.1
          #   port = 6720
             send_time = 600 # update date/time every 600 seconds, default none
             time_ga = 2/1/0 # default none
          
          [visu]
              class_name = WebSocket
              class_path = plugins.visu
          #   ip='0.0.0.0'
          #   port=2121
              generator_dir = /var/www/shvisu
          Und hier das Logfile:
          Code:
          2013-01-26 21:42:38 SmartHome.py INFO     Init SmartHome.py v0.8-Beta
          2013-01-26 21:42:38 SmartHome.py INFO     Init Scheduler
          2013-01-26 21:42:38 SmartHome.py INFO     Init plugins
          2013-01-26 21:42:38 SmartHome.py INFO     Init items
          2013-01-26 21:42:38 SmartHome.py INFO     Start Plugins
          2013-01-26 21:42:38 SmartHome.py INFO     Starting logics
          2013-01-26 21:42:38 sh.con       INFO     KNX: connected to 127.0.0.1:6720

          Grüße,
          Michael
          Viele Grüße,
          Michael

          Kommentar


            #6
            Hallo Michael,

            sieht soweit ok aus. Starte doch bitte mal smarthome.py mit -n
            und poste was dann angezeigt wird inkl. dem Zeitpunkt wo Du eine Verbindung aufmachen möchtest.

            Danke

            Marcus

            Kommentar


              #7
              hier das Logfile mit -n:

              Kurz vor "Stop plugins" habe ich auf der Webseite den Toggle mehrmals getoggled.
              Da ich aber wie gesagt in der Firefox Console keine Serveranfrage beim togglen sehe,
              gehe ich davon aus, das der Browser die Toggle Nachricht gar nicht an den Server schickt oder zeigt die Firefox Console keine Websocket Aufrufe (die HTTP-Gets für die Seitenaufrufe sehe ich).

              Code:
              mrhouse@hoelderlin:/usr/local/smarthome/var/log$ sudo /usr/local/smarthome/bin/smarthome.py -n --start
              2013-01-26 21:55:03,563 SmartHome.py INFO     Init SmartHome.py v0.8-Beta -- smarthome.py:__init__:190
              2013-01-26 21:55:03,569 SmartHome.py INFO     Init Scheduler -- scheduler.py:__init__:52
              2013-01-26 21:55:03,578 SmartHome.py INFO     Init plugins -- smarthome.py:__init__:205
              2013-01-26 21:55:03,582 SmartHome.py DEBUG    Plugin: knx -- plugin.py:__init__:42
              2013-01-26 21:55:03,586 Scheduler    DEBUG    creating 5 workers -- scheduler.py:run:58
              2013-01-26 21:55:03,623 SmartHome.py DEBUG    knx.time next time: 2013-01-26 21:55:13+01:00 -- scheduler.py:_next_time:194
              2013-01-26 21:55:03,624 SmartHome.py DEBUG    Plugin: visu -- plugin.py:__init__:42
              2013-01-26 21:55:03,784 SmartHome.py INFO     Init items -- smarthome.py:__init__:207
              2013-01-26 21:55:03,902 SmartHome.py DEBUG    Item 'favoriten': No type specified. -- item.py:__init__:97
              2013-01-26 21:55:03,906 SmartHome.py DEBUG    knx: Deckenlampe listen on 3/6/0 -- __init__.py:parse_item:209
              2013-01-26 21:55:03,907 SmartHome.py DEBUG    knx: Deckenlampe listen on and init with 3/6/0 -- __init__.py:parse_item:218
              2013-01-26 21:55:03,908 SmartHome.py DEBUG    Item 'Arbeitszimmer': No type specified. -- item.py:__init__:97
              2013-01-26 21:55:03,921 SmartHome.py INFO     Start Plugins -- plugin.py:start:63
              2013-01-26 21:55:03,932 SmartHome.py INFO     Starting logics -- logic.py:__init__:33
              2013-01-26 21:55:03,933 SmartHome.py DEBUG    reading logics from /usr/local/smarthome/etc/logic.conf -- logic.py:__init__:40
              2013-01-26 21:55:04,055 sh.con       INFO     KNX: connected to 127.0.0.1:6720 -- my_asynchat.py:connect:61
              2013-01-26 21:55:04,174 sh.con       DEBUG    knx: read init/cache ga -- __init__.py:handle_connect:102
              2013-01-26 21:55:04,179 sh.gc        DEBUG    Garbage collector: collected 401 objects. -- smarthome.py:_garbage_collection:313
              2013-01-26 21:55:04,257 Scheduler    DEBUG    sh.gc next time: 2013-01-27 02:04:00+01:00 -- scheduler.py:_next_time:194
              2013-01-26 21:55:04,939 SmartHome.py DEBUG    0.0.0 read 3/6/0 -- __init__.py:parse_telegram:180
              2013-01-26 21:55:04,940 SmartHome.py DEBUG    2.1.1 set 3/6/0 to False -- __init__.py:parse_telegram:167
              2013-01-26 21:55:13,113 SmartHome.py DEBUG    0.0.0 set 2/1/0 to 15 37 d -- __init__.py:parse_telegram:162
              2013-01-26 21:55:13,300 Scheduler    DEBUG    knx.time next time: 2013-01-26 22:05:13+01:00 -- scheduler.py:_next_time:194
              2013-01-26 21:55:22,525 SmartHome.py DEBUG    1.1.3 set 1/2/2 to 0 b -- __init__.py:parse_telegram:162
              ^C2013-01-26 21:55:41,357 SmartHome.py INFO     Stop Plugins -- plugin.py:stop:68
              2013-01-26 21:55:41,359 SmartHome.py INFO     KNX: connection to 127.0.0.1:6720 closed -- my_asynchat.py:handle_close:77
              2013-01-26 21:55:41,362 SmartHome.py DEBUG    Closing listen -- __init__.py:stop:121
              2013-01-26 21:55:41,864 SmartHome.py INFO     SmartHome.py stopped -- smarthome.py:stop:307

              Grüße,
              Michael
              Viele Grüße,
              Michael

              Kommentar


                #8
                Hi Michael,

                in der Firefox Console wird standardmäßig nicht soviel dazu ausgegeben.

                Ändere doch mal im HTML Header
                Code:
                <script src="/js/smarthome.min.js"></script>
                in
                Code:
                <script src="/js/smarthome.js"></script>
                und poste dann den Output von Firefox.

                Verwendest Du die aktuelle Firefox Version?

                Bis bald

                Marcus

                Kommentar


                  #9
                  Hallo Marcus,

                  das war der richtige Tip:
                  Nach der Enfernung von "min" funktioniert es plötzlich, d.h. ich kann über die Weboberfläche schalten und die Seite aktualisiert sich sogar, wenn ich den Lichtschalter betätige.

                  Im Firefox erscheinen jetzt folgende Meldungen. Im Smarthome Logfile sehe ich die Schaltbefehle jetzt auch!

                  Ich verwende Firefox 18.0.1. In Chrome funktioniert es jetzt auch, vor der Änderung hatte es dort auch nicht funktioniert.

                  Code:
                  [22:46:14.830] sending data: {"k":"p","v":1}
                  [22:46:14.832] sending data: {"k":"m","p":["Arbeitszimmer.Deckenlampe"]}
                  [22:46:14.866] receiving data: {"p":1,"k":"p"}
                  [22:46:15.015] receiving data: {"p":[["Arbeitszimmer.Deckenlampe",false]],"k":"i"}
                  --
                  [22:46:20.051] Arbeitszimmer.Deckenlampe changed to: true (boolean)
                  [22:46:20.052] sending data: {"k":"i","p":"Arbeitszimmer.Deckenlampe","v":true}
                  --
                  [22:46:25.645] Arbeitszimmer.Deckenlampe changed to: false (boolean)
                  [22:46:25.645] sending data: {"k":"i","p":"Arbeitszimmer.Deckenlampe","v":false}
                  [22:46:27.116] Arbeitszimmer.Deckenlampe changed to: true (boolean)
                  [22:46:27.117] sending data: {"k":"i","p":"Arbeitszimmer.Deckenlampe","v":true}
                  [22:46:28.554] Arbeitszimmer.Deckenlampe changed to: false (boolean)
                  [22:46:28.554] sending data: {"k":"i","p":"Arbeitszimmer.Deckenlampe","v":false}
                  --
                  [22:47:17.403] receiving data: {"p":[["Arbeitszimmer.Deckenlampe",true]],"k":"i"}
                  --
                  [22:47:26.146] receiving data: {"p":[["Arbeitszimmer.Deckenlampe",false]],"k":"i"}
                  Grüße,
                  Michael
                  Viele Grüße,
                  Michael

                  Kommentar


                    #10
                    Hallo Michael,

                    das war ja eine schwierige Geburt.
                    Das eigentliche Problem ist wahrscheinlich eine veraltete smarthome.min.js Datei, liegt die überhaupt in dem Webordner?

                    Bis bald

                    Marcus

                    P.S. bitte mach immer einen Haken an das Thema, wenn es für Dich gelöst ist.

                    Danke

                    Kommentar


                      #11
                      Den Haken hatte ich schon gemacht.

                      Ja, ich habe die Visu-Dateien nach Anleitung rüberkopiert. Beide smarthome*.js Dateien liegen unter /var/www/shvisu/js/.
                      Ich verwende smarthome 0.8 Beta.

                      Grüße,
                      Michael
                      Viele Grüße,
                      Michael

                      Kommentar

                      Lädt...
                      X