erste beta - fronthem, smartVISU (closed, Bitte die Anschlussthreads benutzen)

Begonnen von herrmannj, 23 Dezember 2014, 22:36:44

Vorheriges Thema - Nächstes Thema

avg123-de

Hallo Jo,

vielen Dank für deine Änderung, jetzt funktionieren die Buttons bei mir richtig!

viele Grüße
Alexander
FHEM auf virtualisiertem Debian in Hyper-V auf Dell Poweredge T110 II mit Windows Server 2012, 1x HM-LAN, verschiedene HomeMatic-Komponenten, Intertechno ITR-1500, Arduino Uno Ethernet mit RF-Modul, DeltaSol BX via VBus, Fritz!Box + Fritz!Fon, SmartVisu via Fronthem, Doorpi

Dirk

Zitat von: herrmannj am 29 Dezember 2014, 12:54:59
btw: ich habe heute schon gelernt das Dirks wvc http://www.fhemwiki.de/wiki/WebViewControl leider keine websockets kann - aber auch das es ein plugin dafür gibt: https://github.com/mkuklis/phonegap-websocket/blob/b7cc3bf50e2aa83bb70ffaf40cfb017c219b7bdc/README.md

Hi Jörg,

ich wollte heute auch mal die Grundlage legen um mit SV arbeiten zu können um die WVC unterstützung mit angehen zu können.
Leider gelingt mir nicht fronthem und fronthemDevice zu definieren.

Ich mache das Ganze schön wie angefordert über das WebUI von FHEM:


define fronthem fronthem

Zitat
Cannot load module fronthem

Fehler aus dem FHEM-Log:

2015.01.02 00:51:32 1: reload: Error:Modul 01_fronthem deactivated:
Type of arg 1 to keys must be hash or array (not hash element) at /opt/fhem/FHEM/01_fronthem.pm line 257, near "})
  "

2015.01.02 00:51:32 0: Type of arg 1 to keys must be hash or array (not hash element) at /opt/fhem/FHEM/01_fronthem.pm line 257, near "})
  "




define test fronthemDevice 192.168.178.233

Zitat
Cannot load module fronthemDevice
Fehler aus dem FHEM-Log:

2015.01.02 00:52:43 1: reload: Error:Modul 31_fronthemDevice deactivated:
Type of arg 1 to keys must be hash or array (not private variable) at /opt/fhem/FHEM/31_fronthemDevice.pm line 113, near "$config)
      "
Type of arg 1 to keys must be hash or array (not hash element) at /opt/fhem/FHEM/31_fronthemDevice.pm line 173, near "})
        "
Type of arg 1 to keys must be hash or array (not hash element) at /opt/fhem/FHEM/31_fronthemDevice.pm line 294, near "})
        "

2015.01.02 00:52:43 0: Type of arg 1 to keys must be hash or array (not private variable) at /opt/fhem/FHEM/31_fronthemDevice.pm line 113, near "$config)
      "
Type of arg 1 to keys must be hash or array (not hash element) at /opt/fhem/FHEM/31_fronthemDevice.pm line 173, near "})
        "
Type of arg 1 to keys must be hash or array (not hash element) at /opt/fhem/FHEM/31_fronthemDevice.pm line 294, near "})
        "


Gruß
Dirk

herrmannj

Hey  :D Grüße !

schau Dir nochmal die Rechte unter www an. Die beiden module checken. Ich kann Dir noch nicht genau sagen wieso das auftritt (machts bei mir nicht), aber im zweiten (bis dritten Anlauf) hat es bisher dann immer geklappt. Ich bitte dieses Fehlerverhalten des moduls mit der version beta #1 zu entschuldigen :)

vg
jörg

Dirk

Rechte sind aber 777. Das Sollte also passen.

Wenn ich mir die Zeilen 256ff in 01_fronthem.pm ansehe, wird da versucht die config aus "./www/fronthem/server/$hash->{NAME}/$cfgFile" zu lesen. Diese existiert hier natürlich noch nicht. Somit hat $data->{config} keine Keys. Daher knallt es im foreach in Zeile 256.

keinen Plan warum das bei "allen anderen" funktioniert.
Perl version?

Gruß
Dirk

herrmannj

Ich schau gleich mal rein, bisher bin ich davon ausgegangen das der Fehler durch "von Hand cfg" entsteht, bin aber bereit das zu revidieren.

ws unterstützung im aktuellen 3,5 cordova hab ich laufen. Aber lass uns das mal zusammen legen, ich würde da parallele Entwicklungen doof finden.

Ich hab im übrigen folgende verrückte Idee: einmal für tabs, als wvc style mit tts und so on.

Dazu drei Handy apps nach gleichem schema, aber ohne tts und co. Dafür mit background mode (läuft als prototyp auf android schon) mit notifiactions und mit geo location.

Das sind doch eigentlich (mMn) die beiden Themen die wir für mobilen zugriff brauchen. Ich hab gelesen das Du im Augenblick wenig Zeit hast, ich kann da reingehen (also bin schon, beides läuft ja). Müsste mir jetzt den cfg screen vornehmen. Für mobil fehlt noch auth...

Wie hast Du das eigentlich hinbekommen cordova.js generell (also auch die normalen browser versionen) zu laden ? Bei mir zickt der immer und bremst die dt Variante extrem aus. Für sv ist das nicht so schlimm weil man ja ganz fix ein extra dir dafür machen kann.

vg
jörg

herrmannj

produktiv
This is perl 5, version 18, subversion 2 (v5.18.2) built for arm-linux-gnueabihf-thread-multi-64int

da meckert der nicht. Aber das ich da trotzdem gefordert bin ist mir klar. Mein Plan ist (war eigentlich) noch ein bischen die (bis auf das) ja meist minor bugs zu sammeln und dann eine beta#2 mit allen fixes raus-zubringen.

Aber irgendwie wird der install schon lästig  ... ich schau was sich da kurzfristig drechseln lässt ...

Dirk

Zitat von: herrmannj am 02 Januar 2015, 01:16:22
Dazu drei Handy apps nach gleichem schema, aber ohne tts und co. Dafür mit background mode (läuft als prototyp auf android schon) mit notifiactions und mit geo location.
Ich habe ja noch viele Ideen für WVC.

ZitatIch hab gelesen das Du im Augenblick wenig Zeit hast, ich kann da reingehen (also bin schon, beides läuft ja).
Das ist in der Tat leider ein kleines Problem aktuell.
Ich hoffe und Denke das sich das in den nächsten Tagen etwas entspannt damit ich auch an den anderen projekten (HM-Wired und Universlsensor) weiter machen kann.
Als erstes will ich WVC auf die aktuelle Cordova-Version anheben. Das wird sicher etwas umfangreicher. Dann sollte das webview-controll aber auch performanter laufen. Und da sind dann noch die Tasks im Tracker.

ZitatWie hast Du das eigentlich hinbekommen cordova.js generell (also auch die normalen browser versionen) zu laden ? Bei mir zickt der immer und bremst die dt Variante extrem aus.
Eigentlich werden die WVC-Teile im JS nur initialisiert wenn die App als Container erkannt wird. Ohne App sollte der Code und auch cordova.js inaktiv bleiben.


Zitat von: herrmannj am 02 Januar 2015, 01:31:17
This is perl 5, version 18, subversion 2 (v5.18.2) built for arm-linux-gnueabihf-thread-multi-64int

Bei mir:
This is perl 5, version 12, subversion 1 (v5.12.1) built for i586-linux-thread-multi
könnte also an der Perl-Version liegen.
Ich werde das noch mal auf meinem DEV-System am RPI testen.

Gruß
Dirk

herrmannj

ich teste gerade, kann mir nur vorstellen das im eval, wo ja für diesen Fall $data->{config} = {} gesetzt wird, was schief geht. Hast Du über der meldung (#257) die "json-ich-hab-nix" meldung ? Die wird ja im eval gemacht.

Dirk

Nö. Ich bekomme nur das was ich vorhin gepostet habe als Fehler.

herrmannj

magst Du mal probeweise in 01_fronthem.pm #242 $data so initialisieren:
#my $data->{config} = {};


Dirk

Ja, aber das führt nicht zum Erfolg.
Wenn ich das foreach von 261-268 auskomentiere klappt das definieren übrigens.
Dann bekomme ich auch den "malformed JSON" Error

2015.01.02 01:53:42 1: fronthem: Error loading cfg file malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "(end of string)") at /opt/fhem/FHEM/01_fronthem.pm line 247

2015.01.02 01:53:42 1: PERL WARNING: print() on closed filehandle SOCKET at /opt/fhem/FHEM/01_fronthem.pm line 254.
2015.01.02 01:53:42 1: PERL WARNING: print() on closed filehandle SOCKET at /opt/fhem/FHEM/01_fronthem.pm line 255.
2015.01.02 01:53:42 1: PERL WARNING: print() on closed filehandle SOCKET at /opt/fhem/FHEM/01_fronthem.pm line 256.
2015.01.02 01:53:42 2: fronthem: ipc listener opened at port 16384

herrmannj

kommentiere mal bitte gleichzeitig die #246 aus... sorry

#246:
$data = $json->decode($json_text);

herrmannj

das print kommt von Dir..debug. oder ?

Dirk

Ja stimmt.

ich habe um das  foreach mal ein
Zitatif (defined($data->{config}) {
   ...
}
gebaut.
Dann klappt das auch.

Dann müsste man das in 31_fronthemDevice.pm vermutlich ähnlich machen?

herrmannj

kannste (Biite  :) ) trotzdem nochmal die beiden kleinen Änderungen von mir ausprobieren ? Ich denke ich verstehe jetzt WAS passiert.

Das gewünschte (und getestete) Verhalten ist das der json im eval bei nicht existierender cfg einen Fehelr wird und im or do block $data mit einem empty hash vorgeladen wird der vom nachfolgenden foreach ja genau null runden macht. Das foreach  ist nur safety falls irgendjemand händisch Unsinn in die cfg schreibt.

Der Schlawiner ist dann nicht die perl Version sondern das JSON Modul was scheinbar auf einigen Systemen den Fehler nicht wirft. Das erklärt auch warum ich das nie nachstellen konnte

Danke schon mal