neues Modul: G-Homa Wifi Steckdose

Begonnen von klausw, 22 September 2015, 22:57:24

Vorheriges Thema - Nächstes Thema

Per

Seit einem Umzug (RaspPi->BananaPi) kann ich meine GHoma-Steckdose nicht mehr unter ihrem von mir vergebenen Namen ansprechen.
Es wird automatisch eine GHoma_<MAC> angelegt, die ich problemlos ansprechen kann. Lösche ich diese, wird sie sofort (!) wieder angelegt.
Die von mir angelegte mit der gleichen MAC bleibt offline. Gibt es da einen Trick? Muss ich kurzzeitig autocreate deaktivieren?

Per

OK, "Trick" gefunden: die <MAC> muss eine <mac> sein, sprich: die define darf nur Kleinbuchstaben enthalten.
Wurde da mal was geändert?

klausw

#92
Zitat von: Per am 30 April 2016, 22:21:38
OK, "Trick" gefunden: die <MAC> muss eine <mac> sein, sprich: die define darf nur Kleinbuchstaben enthalten.
Wurde da mal was geändert?
Nö, da sollte sich seit Einführung der Server Lösung so verhalten.
Ist ein bisschen unglücklich, das beim define Großbuchstaben akzeptiert werden und in Zeile 284, in der überprüft wird, ob eine passende Steckdose schon existiert nur Kleinbuchstaben funktionieren.
Es ist aber seltsam, das es bei dir so funktionierte.
Evtl. hattest du noch eine ältere Version aus dem thread...die begann mit 52 und hätte natürlich immer Vorrang

Edit:

Zeile 169
$hash->{Id} = $pport;
nach
$hash->{Id} = lc $pport;
sollte das Problem lösen.
Werde ich demnächst hochladen.


RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Depechem

#93
Zitat von: Per am 29 Dezember 2015, 19:12:20

Übrigens, wenn beim Start (mind.) ein Client den Status "offline" hat (notify), schicke ich ein "delete GHoma:192.*" raus. Funktioniert gut damit.
define GHoma_test at +00:01 IF ([GHoma.*] eq "offline") (delete GHoma:192.*)


Hallo Per,
wenn ich das richtig verstehe hast du das gleiche Problem wie ich!?
ich habe mit meinen Ghoma Dosen immer das Problem, das nach einem "shutdown restart" die Dosen fasst immer offline bleiben! Dann muss ich entweder die Dosen vom Strom trennen,sie im Webserver neu starten oder ab und zu geht ein erneuter "shutdown restart" von fhem.
Wie genau hast du dieses Problem gelößt!?

Vielen Dank im voraus
Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

traveltheworld

Bei mir ist ein ähnliches Verhalten nach einem Neustart des FHEM-Servers zu beobachten. Wobei sich (zumindest bei mir) gezeigt hat, dass etwas Geduld genügt: nach ein paar Minuten haben sich alle (vier) Steckdosen wieder mit dem FHEM-GHoma-Server erfolgreich verbunden (Mal die eine, mal die andere Steckdose etwas früher oder später).

Depechem

Zitat von: traveltheworld am 04 Juli 2016, 12:30:22
Bei mir ist ein ähnliches Verhalten nach einem Neustart des FHEM-Servers zu beobachten. Wobei sich (zumindest bei mir) gezeigt hat, dass etwas Geduld genügt: nach ein paar Minuten haben sich alle (vier) Steckdosen wieder mit dem FHEM-GHoma-Server erfolgreich verbunden (Mal die eine, mal die andere Steckdose etwas früher oder später).

nein leider bleiben sie bei mir komplett offline!!
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Per

Zitat von: Depechem am 04 Juli 2016, 11:20:21Wie genau hast du dieses Problem gelößt!?
So wie im von dir zitierten Code.
Zusätzlich folgendes notify, was im laufenden Betrieb für "Ordnung" sorgt:
define GHoma_kill notify (.*GHoma.*):offline delete GHoma:192.*
Wichtig dabei, dass die echten Geräte auch das GHoma im Namen haben. Ansonsten würde bestimmt auch eine structure weiter helfen. Ist aber bei mir nicht nötig.
Sobald ein GHoma-Gerät den Status offline hat, werden blind alle mit "GHoma:192" beginnenden Geräte (das sind die automatisch angelegten) gelöscht. Das macht es bei mir nämlich nicht automatisch, zumindest nicht in überschaubaren Zeiträumen.

klausw

Hmm, das häuft sich jetzt langsam  :(
Ich habe nur eine Steckdose in Verwendung und die funktioniert Problemlos.
Ich mache etwa alle 2 Tage ein update in FHEM und starte dann auch neu ... ohne Probleme.
Auch schaltet mein Wlan aus, wenn das Haus für mindestens 30min verlassen wurde.
Direkt nach dem einschalten des Wlal verbindet sich die Steckdose wieder.

Gibt es Fehlermeldungen wenn ihr mit Verbose 5 laufen lasst?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Depechem

Zitat von: Per am 05 Juli 2016, 11:03:19
So wie im von dir zitierten Code.
Zusätzlich folgendes notify, was im laufenden Betrieb für "Ordnung" sorgt:
define GHoma_kill notify (.*GHoma.*):offline delete GHoma:192.*
Wichtig dabei, dass die echten Geräte auch das GHoma im Namen haben. Ansonsten würde bestimmt auch eine structure weiter helfen. Ist aber bei mir nicht nötig.
Sobald ein GHoma-Gerät den Status offline hat, werden blind alle mit "GHoma:192" beginnenden Geräte (das sind die automatisch angelegten) gelöscht. Das macht es bei mir nämlich nicht automatisch, zumindest nicht in überschaubaren Zeiträumen.

Zitat von: klausw am 05 Juli 2016, 11:25:16
Hmm, das häuft sich jetzt langsam  :(
Ich habe nur eine Steckdose in Verwendung und die funktioniert Problemlos.
Ich mache etwa alle 2 Tage ein update in FHEM und starte dann auch neu ... ohne Probleme.
Auch schaltet mein Wlan aus, wenn das Haus für mindestens 30min verlassen wurde.
Direkt nach dem einschalten des Wlal verbindet sich die Steckdose wieder.

tut mir leid aber scheinbar bin ich zu blöd!

Also nochmal meine Ghoma Geräte(4-6 Stück) sehen in fhem so aus:
Internals:
   DEF        3f0e32
   FD         58
   IP
   Id         3f0e32
   LASTSTATE  off
   MAC        AC:CF:23:3F:0E:32
   NAME       GHoma_3f0e32
   NR         114
   PORT
   SNAME      GHoma
   STATE      off
   TYPE       GHoma
   Readings:
     2016-07-06 22:03:37   source          remote
     2016-07-06 22:03:37   state           off
Attributes:
   alias      LED-Wand
   fhem_widget_command {"allowed_values":["off","on"],"order":5}
   group      2-Wohnzimmer
   icon       taster_ch6_1
   room       Alles,Wohnzimmer
   sortby     4
   webCmd     on:off


nach fhem Neustart werden nie alle wieder online gesetzt!
Wie Klaus schreibt, das nach einer Weile offline sich die Dose wieder findet gibt es bei mir gar nicht.
Sobald nach fhem Neustart nicht innerhalb 90-120s alle Dosen gefunden wurden werden sie auch nie wieder aktiv! Erst nach Stromtrennung der Ghoma oder evtl. nach fhem Neustart. Manchmal verliert sich eine Dose auch ohne fhem Neustart. Dann geht sie auch nicht mehr von allein Online!!

Per > zwecks deinem notify sowie IF sehe ich nicht ganz durch.
ich lege beide Dinge in fhem an und speichere sie:
define GHoma_kill notify (.*GHoma.*):offline delete GHoma:192.*
dieses Notify bewirkt bei mir nix?
define GHoma_test at +00:01 IF ([GHoma.*] eq "offline") (delete GHoma:192.*)
dieses IF speichere ich und nach einer Minute ist es ja aus der config raus! Also wird nur einmalig angewandt.
Fehlt da bei mir noch etwas oder was mache ich falsch!?

Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Per

Ich fange mal hinten an:
Zitat von: Depechem am 07 Juli 2016, 13:20:04
define GHoma_test at +00:01 IF ([GHoma.*] eq "offline") (delete GHoma:192.*)
dieses IF speichere ich und nach einer Minute ist es ja aus der config raus! Also wird nur einmalig angewandt.
Dann arbeitet es schonmal richtig. Das musst du "hardcodiert" in die fhem.cfg eintragen, damit es beim Start ausgeführt wird.

Zitat von: Depechem am 07 Juli 2016, 13:20:04
define GHoma_kill notify (.*GHoma.*):offline delete GHoma:192.*
dieses Notify bewirkt bei mir nix?
Wenn deine Dosen mal wieder offline sind, schau mal unter "TYPE=GHoma" (genaue URL habe ich gerade nicht im Kopf, kann ich nachreichen) nach, was sich dort alles finden. Bei mir sind dort der Host, die von mir angelegten Geräte sowie die automatisch vom System angelegten (Syntax: GHoma:192.....). Letztere soll das notify löschen, sobald es erkennt (durch "offline"), dass welche existieren.

Zitat von: Depechem am 07 Juli 2016, 13:20:04
Wie Klaus schreibt, das nach einer Weile offline sich die Dose wieder findet gibt es bei mir gar nicht.
Sobald nach fhem Neustart nicht innerhalb 90-120s alle Dosen gefunden wurden werden sie auch nie wieder aktiv!
Bei mir auch, deshalb auch diese beiden Befehle.
Könnte man bestimmt auch ins Modul übernehmen, aber für die zwei Zeilen tue ich mir den Stress nicht an, das Modul zu reengineeren.

Depechem

Zitat von: Per am 07 Juli 2016, 13:53:23
Das musst du "hardcodiert" in die fhem.cfg eintragen, damit es beim Start ausgeführt wird.

kannst du mir sagen wie ich das genau eintragen soll damit es "hardcodier" ist!?

Zitat von: Per am 07 Juli 2016, 13:53:23
Wenn deine Dosen mal wieder offline sind, schau mal unter "TYPE=GHoma" (genaue URL habe ich gerade nicht im Kopf, kann ich nachreichen) nach, was sich dort alles finden. Bei mir sind dort der Host, die von mir angelegten Geräte sowie die automatisch vom System angelegten (Syntax: GHoma:192.....). Letztere soll das notify löschen, sobald es erkennt (durch "offline"), dass welche existieren.
Bei mir auch, deshalb auch diese beiden Befehle.

Das wird bei mir angezeigt:
GHoma Initialized

GHoma_192.168.2.100_8323 Connected
GHoma_192.168.2.124_10239 Connected
GHoma_192.168.2.125_12217 Connected
GHoma_192.168.2.126_9431 Connected


und ein list von GHoma sieht bei mir so aus:
Internals:
   CONNECTS   4
   DEF        4196
   FD         13
   NAME       GHoma
   NR         112
   PORT       4196
   STATE      Initialized
   TYPE       GHoma
   Readings:
     2016-03-19 14:45:29   3ed12c_source   local
     2016-03-19 14:45:29   3ed12c_state    off
     2016-07-07 13:35:22   3ed138_source   local
     2016-07-07 13:35:22   3ed138_state    on
     2016-03-19 14:45:33   3f0586_source   local
     2016-03-19 14:45:33   3f0586_state    off
     2016-07-07 13:35:25   3f0e32_source   local
     2016-07-07 13:35:25   3f0e32_state    off
     2016-07-07 13:35:23   3f1792_source   local
     2016-07-07 13:35:23   3f1792_state    off
     2016-07-07 13:35:25   3f19b2_source   local
     2016-07-07 13:35:25   3f19b2_state    off
Attributes:
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Per

Zitat von: Depechem am 07 Juli 2016, 14:04:55
kannst du mir sagen wie ich das genau eintragen soll damit es "hardcodier" ist!?
Hm, gute Frage. Bei mir darf fhem nicht in die fhem.cfg schreiben (ich weiss, das wird nicht gern gesehen), da dieser Befehl im Betrieb bald nicht mehr vorhanden ist, wird er bei Änderungen auch nicht zurückgeschrieben.
Ehrlich gesagt, ich weiss nicht, wie ich ihn so innnerhalb fhem anlegen kann, dass er reset-fest ist. :-[

Aber google sagt: schau mal hier. Habe ich aber noch nie gemacht und kann es (inkl. Syntax) gerade nicht testen:
define FHEM_init notify global:INITIALIZED define GHoma_test at +00:01 IF ([GHoma.*] eq "offline") (delete GHoma:192.*)

oder
define FHEM_init notify global:INITIALIZED  sleep 60;; IF ([GHoma.*] eq "offline") (delete GHoma:192.*)

Depechem

Zitat von: Per am 07 Juli 2016, 15:56:55
Hm, gute Frage. Bei mir darf fhem nicht in die fhem.cfg schreiben (ich weiss, das wird nicht gern gesehen), da dieser Befehl im Betrieb bald nicht mehr vorhanden ist, wird er bei Änderungen auch nicht zurückgeschrieben.
Ehrlich gesagt, ich weiss nicht, wie ich ihn so innnerhalb fhem anlegen kann, dass er reset-fest ist. :-[

Aber google sagt: schau mal hier. Habe ich aber noch nie gemacht und kann es (inkl. Syntax) gerade nicht testen:
define FHEM_init notify global:INITIALIZED define GHoma_test at +00:01 IF ([GHoma.*] eq "offline") (delete GHoma:192.*)

oder
define FHEM_init notify global:INITIALIZED  sleep 60;; IF ([GHoma.*] eq "offline") (delete GHoma:192.*)

beide probiert, leider bleibt es trotzdem offline!

ich habe alle GHoma auf "verbose 5" gesetzt. Im Log erscheinen aber nur die GHoma Dosen die sich nicht im offline befinden!!
2016.07.07 16:22:09.832 5: GHoma_3ed138 RX: 5A A5 00 12 07 01 0A C0 32 23 3E D1 38 00 01 06 AC CF 23 3E D1 38 A5 5B B5
2016.07.07 16:22:09.833 4: GHoma_3ed138 laengesoll = 18 laengeist = 17
2016.07.07 16:22:09.834 5: GHoma_3ed138 RX: 5A A5 00 12 07 01 0A C0 32 23 3E D1 38 00 02 05 00 01 01 08 0F 71 5B B5
2016.07.07 16:22:09.834 5: GHoma_3ed138 RX: 5A A5 00 15 90 01 0A E0 32 23 3E D1 38 00 00 00 81 11 00 00 01 00 00 00 FF 56 5B B5

RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Per

Wie reagiert fhem, wenn du delete GHoma:192.* im cmd-Feld ausführst?

Depechem

Zitat von: Per am 07 Juli 2016, 17:13:05
Wie reagiert fhem, wenn du delete GHoma:192.* im cmd-Feld ausführst?

also wenn ich delete GHoma:192.* eingebe passiert nix.
wenn ich delete GHoma_192.* eingebe werden alle Dosen angesprochen und gehen wie gewollt online.
Leider bringt eine Änderung auf:
define GHoma_kill notify (.*GHoma.*):offline delete GHoma_192.*
define FHEM_init notify global:INITIALIZED  sleep 120;; IF ([GHoma.*] eq "offline") (delete GHoma_192.*)
keine Besserung.
Was könnte der Fehler sein?

RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...