Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19001435 / 19001436 Homematic / Homematic IP Einbindung

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

    #61
    Zitat von junibart Beitrag anzeigen
    EDIT 9.2.2018: Blödsinn: Bei Triggerung an E10..E13 wird jedesmal die CCU angefragt und gibt die Werte, ggf. zwischengespeichert, zurück. Das einzige, was bei mir mit einem Event bzw. Multicall passiert, ist das Abspeichern im debug-Log, ausgewertet wird nichts.
    /EDIT

    Was nicht funktioniert, ist das sofortige Reagieren auf ein event/multicall, was ja z.B. für die Nutzung der Fernbedienung essentiell ist. Damit bin ich aber hier nicht der einzige,
    ladnermi
    Forums-Einsteiger
    ladnermi scheint ja dasselbe Problem zu haben.

    Das Log des event receivers wird auch nur bei der Projektaktivierung aktualisiert, trotz loglevel 8 werden ankommende events (die man ja in der hm_xmlrpcsrv_debug.log sehen kann) nicht im LBS-Log aufgezeichnet.

    Hi
    junibart
    Forums-Einsteiger
    junibart ,

    ich werde die Handhabung der XMLRPC-Verbindung zwischen dem LBS und der HM-Zentrale noch optimieren.
    Es gibt einen PING-Befehl, der ein PONG-Event auf dem XMLRPC-Server im LBS auslöst, darüber werde ich das automatische Re-Init bei der CCU realisieren.

    Bei der Entwicklung selbst ist mir aufgefallen, dass ich die CCU wohl irgendwie auf dem Tritt gebracht habe, was die Registrierung des XMLRPC-Servers angeht.
    Ich musste die CCU (RaspberryMatic bei mir) neu starten.

    Der Event-Receiver LBS muss also noch ein wenig überarbeitet werden, um robuster mit allen möglichen Rahmenbedingungen zurecht zu kommen.

    Wenn Du im hm_xmlrpcsrv_debug.log die Events siehst, aber im Event Receiver-Log bei Loglevel 8 keine Event-Meldung siehst, dann ist das ein LBS-Problem.
    Ich hoffe nicht, dass es ein grundsätzliches Problem mit dem Verhalten der Message Queues auf unterschiedlichen Systemen ist.
    Die Messages Queue im XMLRPC-Server sendet das Event im NON-Blocking-Modus. Hoffentlich geht es dort nicht verloren.
    Alternativ passt die Message-Queue-ID, die in der Event-Nachricht der CCU mit übermittelt wird und beim Init angegeben war, nicht mehr zu aktuellen Message Queue.

    Ich werde das mal weiter analysieren.


    Kommentar


      #62
      Zitat von Nanosonde Beitrag anzeigen

      Hi
      tunneltruppe
      KNX Anwender
      tunneltruppe ,

      was genau machst Du denn mit dem Rauchwarnmelder, um die Logik in Edomi zu testen?
      Löst Du aktiv einen Alarm aus oder so?
      Die Rauchwarnmelder melden sich wohl nur alle paar Tage, die Batterie muss ja 10 Jahre halten.
      Mahlzeit Christian,
      das mit dem "senden alle paar Tage" dachte ich mir, aber der RM SD-2 hatte
      halt immer Werte angezeigt.
      Also dachte ich mir (sprich Logik testen), man muss das Teil auslösen, also das bestellt:
      41OW1x8f5vL.jpg
      und in den Melder (natürlich wenig) gehauen.
      Uns siehe da: Es kamen Werte und eine "1" bei "SMOKE_DETECTOR_ALARM_STATUS"!
      Also DANKE für die Bausteine und die "Rückmeldung"
      Schönen Restsonntag an alle...
      Gruß Marcus

      Kommentar


        #63
        Zitat von Nanosonde Beitrag anzeigen
        Bei der Entwicklung selbst ist mir aufgefallen, dass ich die CCU wohl irgendwie auf dem Tritt gebracht habe, was die Registrierung des XMLRPC-Servers angeht.
        Ich musste die CCU (RaspberryMatic bei mir) neu starten.
        Das habe ich auch mehrfach gemacht, allerdings nicht durch einen kompletten Neustart Raspberry, sondern nur duch "service homegear restart". Ich versuch mal einen reboot.

        Zitat von Nanosonde Beitrag anzeigen
        Der Event-Receiver LBS muss also noch ein wenig überarbeitet werden, um robuster mit allen möglichen Rahmenbedingungen zurecht zu kommen.
        Wenn Du im hm_xmlrpcsrv_debug.log die Events siehst, aber im Event Receiver-Log bei Loglevel 8 keine Event-Meldung siehst, dann ist das ein LBS-Problem.
        Ich werde das mal weiter analysieren.
        Da könnte ich vielleicht etwas unterstützen. Kann mir mal jemand eine hm_xmlrpcsrv_debug.log von einem Event bzw. Multicall per PN zuschicken, das in Edomi korrekt verarbeitet wird? Dann würde ich die Strukturen mal mit dem vergleichen, was Homegear sendet.

        Danke und beste Grüße,

        Gunnar

        Kommentar


          #64
          Code:
          >>XMLRPC server script START<<
          array(23) {
            ["HTTP_USER_AGENT"]=>
            string(12) "XMLRPC++ 0.7"
            ["HTTP_HOST"]=>
            string(15) "192.168.10.5:80"
            ["CONTENT_TYPE"]=>
            string(28) "text/xml; charset=iso-8859-1"
            ["CONTENT_LENGTH"]=>
            string(3) "476"
            ["PATH"]=>
            string(29) "/sbin:/usr/sbin:/bin:/usr/bin"
            ["SERVER_SIGNATURE"]=>
            string(0) ""
            ["SERVER_SOFTWARE"]=>
            string(67) "Apache/2.2.15 (CentOS) PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips"
            ["SERVER_NAME"]=>
            string(12) "192.168.10.5"
            ["SERVER_ADDR"]=>
            string(12) "192.168.10.5"
            ["SERVER_PORT"]=>
            string(2) "80"
            ["REMOTE_ADDR"]=>
            string(13) "192.168.10.12"
            ["DOCUMENT_ROOT"]=>
            string(20) "/usr/local/edomi/www"
            ["SERVER_ADMIN"]=>
            string(14) "root@localhost"
            ["SCRIPT_FILENAME"]=>
            string(57) "/usr/local/edomi/www/data/liveproject/lbs/EXE19001435.php"
            ["REMOTE_PORT"]=>
            string(5) "48598"
            ["GATEWAY_INTERFACE"]=>
            string(7) "CGI/1.1"
            ["SERVER_PROTOCOL"]=>
            string(8) "HTTP/1.1"
            ["REQUEST_METHOD"]=>
            string(4) "POST"
            ["QUERY_STRING"]=>
            string(0) ""
            ["REQUEST_URI"]=>
            string(37) "/data/liveproject/lbs/EXE19001435.php"
            ["SCRIPT_NAME"]=>
            string(37) "/data/liveproject/lbs/EXE19001435.php"
            ["PHP_SELF"]=>
            string(37) "/data/liveproject/lbs/EXE19001435.php"
            ["REQUEST_TIME"]=>
            int(1518371808)
          }
          ">>REQUEST<< :<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r\n<methodCall><methodName>system.multicall<\/methodName>\r\n<params><param><value><array><data><value><struct><member><name>methodName<\/name><value>event<\/value><\/member><member><name>params<\/name><value><array><data><value>edomi_hm-56867022<\/value><value>NEQ094XXXX:1<\/value><value>LOWBAT<\/value><value><boolean>0<\/boolean><\/value><\/data><\/array><\/value><\/member><\/struct><\/value><\/data><\/array><\/value><\/param><\/params><\/methodCall>\r\n"
          RPC method system.multicall()
          array(1) {
            [0]=>
            array(2) {
              ["methodName"]=>
              string(5) "event"
              ["params"]=>
              array(4) {
                [0]=>
                string(17) "edomi_hm-56867022"
                [1]=>
                string(12) "NEQ094XXXX:1"
                [2]=>
                string(6) "LOWBAT"
                [3]=>
                bool(false)
              }
            }
          }
          event(edomi_hm-56867022, NEQ094XXXX:1, LOWBAT, )
          ">>Response<< :<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<methodResponse>\n<params>\n <param>\n  <value>\n   <array>\n    <data>\n     <value>\n      <string\/>\n     <\/value>\n    <\/data>\n   <\/array>\n  <\/value>\n <\/param>\n<\/params>\n<\/methodResponse>\n"
          >>XMLRPC server script END<<

          Kommentar


            #65
            Nanosonde
            Forums-Einsteiger
            Nanosonde
            junibart
            Forums-Einsteiger
            junibart

            habe einen Edomi Server mit zwei CCU2 Server und einem RaspMatic Server verbunden
            funktioniert alle super

            Kommentar


              #66
              Zitat von Nanosonde Beitrag anzeigen
              Code:
              >>XMLRPC server script START<<
              Hi
              Nanosonde
              Forums-Einsteiger
              Nanosonde , danke- aber das geht dann doch über meine Kenntnisse.... Habe versucht, aus Deiner Debug-Ausgabe einen XML-Request zu generieren und per curl dem LBS unterzuschieben- komme aber mit diversen Zeichencodierungen nicht klar....

              Falls Du Zeit hast, kannst Du Dir ja mal meine debug-Ausgabe ansehen- vielleicht erschließt sich ja das Problem. Auf den ersten Blick, ist nur die Header-Zeile anders, und meine XML hat tiefer verschachtelte Strukturen... wie gesagt, ich blicks nicht.

              Danke und beste Grüße,

              Gunnar
              Code:
               >>XMLRPC server script START<<
              array(24) {
                ["HTTP_USER_AGENT"]=>
                string(20) "Homegear 0.7.15-1580"
                ["HTTP_HOST"]=>
                string(17) "192.168.122.10:80"
                ["CONTENT_TYPE"]=>
                string(8) "text/xml"
                ["CONTENT_LENGTH"]=>
                string(4) "1315"
                ["HTTP_CONNECTION"]=>
                string(5) "close"
                ["PATH"]=>
                string(29) "/sbin:/usr/sbin:/bin:/usr/bin"
                ["SERVER_SIGNATURE"]=>
                string(0) ""
                ["SERVER_SOFTWARE"]=>
                string(67) "Apache/2.2.15 (CentOS) PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips"
                ["SERVER_NAME"]=>
                string(14) "192.168.122.10"
                ["SERVER_ADDR"]=>
                string(14) "192.168.122.10"
                ["SERVER_PORT"]=>
                string(2) "80"
                ["REMOTE_ADDR"]=>
                string(14) "192.168.122.59"
                ["DOCUMENT_ROOT"]=>
                string(20) "/usr/local/edomi/www"
                ["SERVER_ADMIN"]=>
                string(14) "root@localhost"
                ["SCRIPT_FILENAME"]=>
                string(57) "/usr/local/edomi/www/data/liveproject/lbs/EXE19001435.php"
                ["REMOTE_PORT"]=>
                string(5) "57358"
                ["GATEWAY_INTERFACE"]=>
                string(7) "CGI/1.1"
                ["SERVER_PROTOCOL"]=>
                string(8) "HTTP/1.1"
                ["REQUEST_METHOD"]=>
                string(4) "POST"
                ["QUERY_STRING"]=>
                string(0) ""
                ["REQUEST_URI"]=>
                string(37) "/data/liveproject/lbs/EXE19001435.php"
                ["SCRIPT_NAME"]=>
                string(37) "/data/liveproject/lbs/EXE19001435.php"
                ["PHP_SELF"]=>
                string(37) "/data/liveproject/lbs/EXE19001435.php"
                ["REQUEST_TIME"]=>
                int(1518383281)
              }
              ">>REQUEST<< :<?xml version=\"1.0\"?>\n<methodCall><methodName>system.multicall<\/methodName><params><param><value><array><data><value><struct><member><name>methodName<\/name><value>event<\/value><\/member><member><name>params<\/name><value><array><data><value>edomi_hm-247908986<\/value><value>NEQ0752993:3<\/value><value>INSTALL_TEST<\/value><value><boolean>1<\/boolean><\/value><\/data><\/array><\/value><\/member><\/struct><\/value><value><struct><member><name>methodName<\/name><value>event<\/value><\/member><member><name>params<\/name><value><array><data><value>edomi_hm-247908986<\/value><value>NEQ0752993:3<\/value><value>PRESS_SHORT<\/value><value><boolean>1<\/boolean><\/value><\/data><\/array><\/value><\/member><\/struct><\/value><value><struct><member><name>methodName<\/name><value>event<\/value><\/member><member><name>params<\/name><value><array><data><value>edomi_hm-247908986<\/value><value>NEQ0752993:3<\/value><value>TEST_COUNTER<\/value><value><i4>4<\/i4><\/value><\/data><\/array><\/value><\/member><\/struct><\/value><value><struct><member><name>methodName<\/name><value>event<\/value><\/member><member><name>params<\/name><value><array><data><value>edomi_hm-247908986<\/value><value>NEQ0752993:3<\/value><value>SIM_COUNTER<\/value><value><i4>4<\/i4><\/value><\/data><\/array><\/value><\/member><\/struct><\/value><\/data><\/array><\/value><\/param><\/params><\/methodCall>\r\n"
              junibart
              Forums-Einsteiger
              Zuletzt geändert von junibart; 11.02.2018, 22:16.

              Kommentar


                #67
                Hi
                junibart
                Forums-Einsteiger
                junibart

                Zitat von junibart Beitrag anzeigen
                wie gesagt, ich blicks nicht.
                Offenbar liegt das Problem im XMLRPC-Server Teil.
                Nach dem Request gibt es gar keine weiteren Debug-Ausgaben mehr in Deinem Log.
                Dort müsste dann sowas wie bei mir oben stehen: "RPC method system.multicall()".
                Offenbar wird das nicht richtig verarbeitet.

                Das sieht irgendwie gar nicht gut aus.
                Denn wenn meine PHP-Funktion "rpc_system_multicall" nicht aufgerufen wird, dann bedeutet das, dass die php-xmlrpc Library, die dort benutzt wird, nicht in der Lage ist, den XML-Request korrekt auszuwerten.
                Die php-xmlrpc Library kommt von CentOS6.5 mit dem alten PHP5.3.

                Ich habe gerade die beiden XML-Request von Hand im Editor verglichen.
                Die Unterschiede sind maginal:
                * Im Header steht bei der CCU noch ein "encoding="iso-8859-1" "drin.
                * Es sind ein paar Zeilenumbrüche anders

                CCU:
                Code:
                <?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r\n
                <methodCall>
                <methodName>system.multicall<\/methodName>\r\n
                Homegear:
                Code:
                <?xml version=\"1.0\"?>\n
                <methodCall>
                <methodName>system.multicall<\/methodName>
                Nanosonde
                Forums-Einsteiger
                Zuletzt geändert von Nanosonde; 15.02.2018, 07:29.

                Kommentar


                  #68
                  Sind den CUX- Geräte auch irgendwann geplant? Habe es gestern versucht zum laufen zu bringen. Aber ohne Erfolg.

                  Kommentar


                    #69
                    Zitat von Kirbsi Beitrag anzeigen
                    Sind den CUX- Geräte auch irgendwann geplant? Habe es gestern versucht zum laufen zu bringen. Aber ohne Erfolg.
                    Hi!

                    CuxD spricht wohl leider nur BIN-RPC und kein XML-RPC.
                    Es gibt aber wohl einen Converter:
                    https://github.com/leonsio/HMXMLBIN

                    Forum: https://homematic-forum.de/forum/vie...hp?f=44&t=8211

                    Da ich das selbst nicht nutze und für mich persönlich auch keinen Mehrwert darstellt, werde ich das Thema nicht weiter verfolgen.
                    CuxD ist ja hauptsächlich dazu da, fremde Systeme einbinden zu können. Das mache ich dann lieber über einen zusätzlichen LBS in Edomi als über Homematic.

                    Kommentar


                      #70
                      Vielen Dank erstmal. Ich habe es noch alles in der Homematic drin. Habe vorher Iobroker genutzt und steige langsam mit allem auf Edomi um. Ziel ist es die Cux-Geräte bald in der Edomi einzulesen. (LBS)
                      Muss ich mir mal anschauen was es da schon gibt bzw ob es schon LBS gibt den den CUL Stick auslesen können.

                      Kommentar


                        #71
                        Zitat von Nanosonde Beitrag anzeigen
                        Hi
                        junibart
                        Forums-Einsteiger
                        junibart

                        Offenbar liegt das Problem im XMLRPC-Server Teil.
                        Nach dem Request gibt es gar keine weiteren Debug-Ausgaben mehr in Deinem Log.
                        Dort müsste dann sowas wie bei mir oben stehen: "RPC method system.multicall()".
                        Offenbar wird das nicht richtig verarbeitet.
                        Nein, das Problem lag nicht dort. Das Problem saß hier vor dem Rechner!!!
                        Nach einem Neustart des EDOMI-Rechners kommen die Events an!
                        Ich Trottel hab zwar oft den CCU-Klon neu gestartet, auch in EDOMI sehr häufig das Projekt neu aktiviert- aber nie den Edomi-Rechner neu gestartet.
                        Ich würde raten, in der Hilfe zum LBS einen reboot des Edomi-Rechners zu ergänzen.

                        Besten Dank für die Bemühungen, ich hoffe, Du hast noch nicht zu viel Zeit für die Lösung meines vermeintlichen Problems aufgewendet.
                        Dann mach ich mich jetzt mal dran, die neuen Möglichkeiten auszunutzen...

                        Dass es nun läuft, zeigt aber auch, dass man Homematic-Geräte mit sehr geringem Hardware-Aufwand an Edomi anbinden kann: Ein Raspi mit Homegear mit (Eigenbau)-CUL-Stick funktioniert, als nächstes teste ich mal die Variante, das 868MHz-Modul direkt an den GPIOs des Raspi zu betreiben.

                        Danke für die Entwicklung der LBS!

                        beste Grüße,
                        Gunnar
                        junibart
                        Forums-Einsteiger
                        Zuletzt geändert von junibart; 18.02.2018, 00:23.

                        Kommentar


                          #72
                          junibart
                          Forums-Einsteiger
                          junibart Freut mich zu hören, dass es nun läuft.

                          Zitat von junibart Beitrag anzeigen
                          Dass es nun läuft, zeigt aber auch, dass man Homematic-Geräte mit sehr geringem Hardware-Aufwand an Edomi anbinden kann: Ein Raspi mit Homegear mit (Eigenbau)-CUL-Stick funktioniert, als nächstes teste ich mal die Variante, das 868MHz-Modul direkt an den GPIOs des Raspi zu betreiben.
                          Ich hatte mir damals auch mal ein günstiges PASSENDES CC1101-Modul bei Ebay gekauft und direkt per Homegear betrieben. Klappte sehr gut.

                          Leider leider wird Homegear laut Sathya aber nie Homematic IP direkt per HW (GPIO-Funkmodul) nutzen können. Er hatte das im Forum mal ausführlich erklärt. Im Wesentlichen sind bisher keine Details zur genauen Protokollumsetzung bekannt und zweitens droht der Hersteller mit Ärger, da er sowas wie mit den normalen Homematic-Geräten nicht nochmal haben möchte. Das normale Homematic-Protokoll ist ja inzwischen inkl. AES und Default-Key bekannt.

                          Zur Nutzung von Homematic IP gibt es bisher nur drei Möglichkeiten: CCU2, das Raspberry-Pi-Modul mit der closed-source OCCU (oder darauf basierende Derivate) oder er neue USB RF-Stick, der aber NUR Homematic IP beherrscht und auch die closed-source OCCU Software benötigt.
                          Der Stick ist nur ein normales Modul wie beim RPi, aber mit USB-Seriell-Wandler.

                          Man sieht also: ohne closed-source Software macht mit Homematic IP leider gar nichts.

                          Daher nutze ich einen RPI3 mit RaspberryMatic. Ich finde das eine sehr stabile und zuverlässige Lösung.
                          Jens Maus arbeitet auch weiterhin fleissig daran.



                          Kommentar


                            #73
                            Hallo
                            Nanosonde
                            Forums-Einsteiger
                            Nanosonde ,

                            habe mich heute ein wenig mit deinen LBSen beschäftigt und bin voll begeistert werde noch ein wenig testen und dann auf deine LBSen umsteigen und meine anpassen.

                            Mit Massage Queues ist es doch eleganter.

                            Bin auf einen kleinen bug im 19001436er gestoßen.

                            bei "if (!empty($E[6]['value']))" wird bei einem wert 0 (bzw. bool) die Bedingung nicht erfüllt.

                            ev. abändern in "if (!is_null($E[6]['value']))"

                            z.B. ab Zeile 523
                            PHP-Code:
                                                case 'setvalue1':
                                                    
                            logging($id"SetValue for param 1: $value");
                                                    if (!empty(
                            $E[6]['value'])) {
                                                        
                            $tmp_split explode('.'$chanparam1);
                                                        
                            $hm_channel $tmp_split[0];
                                                        
                            $hm_parameter $tmp_split[1];
                                                        
                            $hm_address $address.':'.$hm_channel;
                                                        
                            $api->HM_setValue($hm_address$hm_parameterhm_settype($paramtype1$value));
                                                    }
                                                    break; 

                            Schöne Grüße
                            Gernot

                            Kommentar


                              #74
                              Zitat von murelli146 Beitrag anzeigen
                              Massage Queues
                              Sind das die Wartelisten bei Deinem Physiotherapeuten???

                              Kommentar


                                #75
                                smiley-back-massage_19-107319.jpg

                                Kommentar

                                Lädt...
                                X