Autor Thema: neues Modul 66_EseraOneWire für den Esera 1-Wire Controller  (Gelesen 71890 mal)

Offline pizmus

  • Developer
  • Full Member
  • ****
  • Beiträge: 124
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #135 am: 23 Mai 2020, 22:36:03 »
Hallo ivor,
in der commandref zu den Esera... Modulen findest Du jeweils die Liste unterstützten Chips oder Esera Produkte. Für das Produkt 11221 gibt es noch nichts.
Wenn Du das Ding im ConfigTool nicht als 11221 konfigurierst, könnte es sein, dass es als DS2408 erscheint. In diesem Fall könnte das FHEM Modul EseraDigitalInOut eine Lösung sein.
Gruß,
pizmus

Offline ivor

  • New Member
  • *
  • Beiträge: 37
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #136 am: 30 Mai 2020, 09:50:50 »
Salü pizmus

Danke für den Tipp, ich bin zwar etwas weiter gekommen, jedoch die gewünschten Möglichkeiten konnte ich nicht ausschöpfen.

Der Dimmer hat zwei Kanäle, wobei ich mit dem zweiten am Rumspielen bin. Die Kanäle habe ich je als ein eigenes Device in FHEM eingebunden:

define EseraAnalogInOut_owEseraCtrl01_8C0000xxxxxxxxxxx_1 EseraAnalogInOut owEseraCtrl01 8C0000xxxxxxxxxxx DS2408 1 0
define EseraAnalogInOut_owEseraCtrl01_8C0000xxxxxxxxxxx_2 EseraAnalogInOut owEseraCtrl01 8C0000xxxxxxxxxxx DS2408 1 1

So kann ich teilweise die Lampe "etwas" ein- und ausschalten. Manchmal geht's mit on/off, manchmal löscht sie nicht komplett aus, sondern bleibt gedimmt, bzw. bei "on" geht sie nicht auf 100%. Manchmal geht's gar nicht. Mit "out" habe ich ähmlich komische Effekte.

Ich habe mal im Essera ConfigTool mitgeschnitten, wenn ich die Lampe bediene, vielleicht kannst Du mir ein Tipp geben, wie ich zum gewünschten Resultat kommen könnte:

C70000xxxxxxxxxxx Ist ein 8fach Relais (11220) - uninteressant
730000xxxxxxxxxxx Temp. Sensor 1 - uninteressant
510000xxxxxxxxxxx Temp. Sensor 2 - uninteressant
8C0000xxxxxxxxxxx Der ist spannend, 1-Wire Dimmer (11221)

Zeitstempel:
08:43:12 - Start Mitschnitt
08:43:20 - Slider vom 2.Kanal komplett auf die rechte Seite verschoben (höchster Wert ist dann 31) --> Screenshot
08:43:31 - Slider vom 2.Kanal auf 10 verschoben
08:43:39 - Slider vom 2.Kanal auf 0 verschoben (also Lampe wieder aus)

Die entsprechenden Kommandos wären laut Logfile:
set,owd,dim,5,2,31
set,owd,dim,5,2,10
set,owd,dim,5,2,0

Ich schätze, dass "5" die OWD ID ist und "2" der zweite Dimmer.

08:43:12 30.05.2020 1_EVT|8:43:19
08:43:12 30.05.2020 1_C70000xxxxxxxxxxx_1|0
08:43:12 30.05.2020 1_C70000xxxxxxxxxxx_2|00000000
08:43:12 30.05.2020 1_C70000xxxxxxxxxxx_3|0
08:43:12 30.05.2020 1_C70000xxxxxxxxxxx_4|00000000
08:43:12 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:12 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:12 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:12 30.05.2020 1_8C0000xxxxxxxxxxx_4|0
08:43:12 30.05.2020 1_730000xxxxxxxxxxx|1206
08:43:12 30.05.2020 1_510000xxxxxxxxxxx|1212
---
>>> get,sys,data
08:43:13 30.05.2020 1_EVT|8:43:20
08:43:13 30.05.2020 1_C70000xxxxxxxxxxx_1|0
08:43:13 30.05.2020 1_C70000xxxxxxxxxxx_2|00000000
08:43:13 30.05.2020 1_C70000xxxxxxxxxxx_3|0
08:43:13 30.05.2020 1_C70000xxxxxxxxxxx_4|00000000
08:43:13 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:13 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:13 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:13 30.05.2020 1_8C0000xxxxxxxxxxx_4|0
08:43:13 30.05.2020 1_730000xxxxxxxxxxx|1206
08:43:13 30.05.2020 1_510000xxxxxxxxxxx|1212
---
>>> set,owd,dim,5,2,31
08:43:20 30.05.2020 1_EVT|8:43:27
08:43:20 30.05.2020 1_FFFFFFFFFFFFFFFF_4|31
---
08:43:22 30.05.2020 1_EVT|8:43:29
---
08:43:22 30.05.2020 1_C70000xxxxxxxxxxx_1|0
08:43:22 30.05.2020 1_C70000xxxxxxxxxxx_2|00000000
08:43:22 30.05.2020 1_C70000xxxxxxxxxxx_3|0
08:43:22 30.05.2020 1_C70000xxxxxxxxxxx_4|00000000
08:43:22 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:22 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:22 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:22 30.05.2020 1_8C0000xxxxxxxxxxx_4|31
08:43:22 30.05.2020 1_730000xxxxxxxxxxx|1206
08:43:22 30.05.2020 1_510000xxxxxxxxxxx|1212
---
08:43:29 30.05.2020 1_EVT|8:43:35
08:43:29 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:29 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:29 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:29 30.05.2020 1_8C0000xxxxxxxxxxx_4|31
---
>>> set,owd,dim,5,2,10
08:43:31 30.05.2020 1_EVT|8:43:38
08:43:31 30.05.2020 1_FFFFFFFFFFFFFFFF_4|10
---
08:43:32 30.05.2020 1_EVT|8:43:39
08:43:32 30.05.2020 1_C70000xxxxxxxxxxx_1|0
08:43:32 30.05.2020 1_C70000xxxxxxxxxxx_2|00000000
08:43:32 30.05.2020 1_C70000xxxxxxxxxxx_3|0
08:43:32 30.05.2020 1_C70000xxxxxxxxxxx_4|00000000
08:43:32 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:32 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:32 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:32 30.05.2020 1_8C0000xxxxxxxxxxx_4|10
08:43:32 30.05.2020 1_730000xxxxxxxxxxx|1206
08:43:32 30.05.2020 1_510000xxxxxxxxxxx|1212
---
>>> set,owd,dim,5,2,0
08:43:39 30.05.2020 1_EVT|8:43:45
08:43:39 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:39 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:39 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:39 30.05.2020 1_8C0000xxxxxxxxxxx_4|10
08:43:39 30.05.2020 1_EVT|8:43:46
08:43:39 30.05.2020 1_FFFFFFFFFFFFFFFF_4|0
---
08:43:42 30.05.2020 1_EVT|8:43:49
08:43:42 30.05.2020 1_KAL|1
---
08:43:42 30.05.2020 1_EVT|8:43:49
08:43:42 30.05.2020 1_C70000xxxxxxxxxxx_1|0
08:43:42 30.05.2020 1_C70000xxxxxxxxxxx_2|00000000
08:43:42 30.05.2020 1_C70000xxxxxxxxxxx_3|0
08:43:42 30.05.2020 1_C70000xxxxxxxxxxx_4|00000000
08:43:42 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:42 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:42 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:42 30.05.2020 1_8C0000xxxxxxxxxxx_4|0
08:43:42 30.05.2020 1_730000xxxxxxxxxxx|1206
08:43:42 30.05.2020 1_510000xxxxxxxxxxx|1212
---
08:43:49 30.05.2020 1_EVT|8:43:55
08:43:49 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:49 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:49 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:49 30.05.2020 1_8C0000xxxxxxxxxxx_4|0
---
08:43:52 30.05.2020 1_EVT|8:43:59
08:43:52 30.05.2020 1_C70000xxxxxxxxxxx_1|0
08:43:52 30.05.2020 1_C70000xxxxxxxxxxx_2|00000000
08:43:52 30.05.2020 1_C70000xxxxxxxxxxx_3|0
08:43:52 30.05.2020 1_C70000xxxxxxxxxxx_4|00000000
08:43:52 30.05.2020 1_8C0000xxxxxxxxxxx_1|0
08:43:52 30.05.2020 1_8C0000xxxxxxxxxxx_2|00000000
08:43:52 30.05.2020 1_8C0000xxxxxxxxxxx_3|0
08:43:52 30.05.2020 1_8C0000xxxxxxxxxxx_4|0
08:43:52 30.05.2020 1_730000xxxxxxxxxxx|1206
08:43:52 30.05.2020 1_510000xxxxxxxxxxx|1212

gruss ivo
« Letzte Änderung: 30 Mai 2020, 09:59:40 von ivor »

Offline pizmus

  • Developer
  • Full Member
  • ****
  • Beiträge: 124
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #137 am: 31 Mai 2020, 11:34:08 »
Hallo ivor,
vielen Dank für die gesammelten Informationen. Ich habe mich entschieden auf der Basis ein neues Modul zu schreiben, denn der Dimmer passt konzeptionell nicht zu den Digital Ein-/Ausgängen. Das neue Modul ist angehängt. Du musst auch 66_EseraOneWire.pm ersetzen. autocreate ist implementiert. Wichtig ist, dass Du per Esera ConfigTool dem Dimmer die Produktnummer (11221) zuweist! Schau Dir den Source Code mal in Ruhe an und probiere ihn aus. Da ich die Hardware selbst nicht habe konnte ich nicht vollständig testen. Die Log Einträge würden mich auf jeden Fall interessieren.
Gruß,
pizmus

Offline pizmus

  • Developer
  • Full Member
  • ****
  • Beiträge: 124
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #138 am: 31 Mai 2020, 16:09:52 »
Es gibt ein neues Modul EseraDimmer für die Dimmer Produkte 11221 und 11222 von Esera. autocreate erzeugt für jeden der zwei Kanäle ein eigenes Device.
Gruß,
pizmus

Offline ivor

  • New Member
  • *
  • Beiträge: 37
Config-Schnippsel für die Verwendung des Esera 11221 Dimmers
« Antwort #139 am: 02 Juni 2020, 08:20:46 »
Salü pizmus

Besten Dank für das Modul, es funktioniert problemlos.

Anbei den Code, wie ich's zusammen mit einem Slider für den Dimmer verwende für den Kanal 2 als Beispiel:

############################
# 2fach Dimmer Device / Kanal 2

# Dimmer Device / Kanal 2 definieren (autocreate)
define EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 EseraDimmer owEseraCtrl01 8C0000xxxxxxxxxx 11221 2
attr EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 room EseraDimmer
attr EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 alias Lampe Dungeon

# Logging für Dimmer Device / Kanal 2 (autocreate)
define FileLog_EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 FileLog ./log/EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2-%Y.log EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2
attr FileLog_EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 room EseraDimmer
attr FileLog_EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 logtype text

# Netter Slider dummy definieren für Dimmer Device / Kanal 2
define EseraDimmer_Slider_2 dummy
attr EseraDimmer_Slider_2 room EseraDimmer
attr EseraDimmer_Slider_2 alias Lampe Dungeon Dimmer
attr EseraDimmer_Slider_2 setList out:colorpicker,BRI,0,1,31
attr EseraDimmer_Slider_2 webCmd out

# Triggert das Slider dummy Device um die änderung an den Dimmer weiter zu geben
define nf_rs_Slider_X_EseraDimmer_2 notify EseraDimmer_Slider_2 \
  { my $valDimSlider = Value("EseraDimmer_Slider_2");; \
  fhem("set EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2 $valDimSlider") }

# Triggert das Dimmer Device um die änderung an den Slider weiter zu geben
#   (Update des Sliders kann ein paar Sekunden dauern - no stress)
define nf_rs_EseraDimmer_X_Slider_2 notify EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2:* \
  { my $valDimDimmer = ReadingsVal("EseraDimmer_owEseraCtrl01_8C0000xxxxxxxxxx_2","out","0");; \
  fhem ("set EseraDimmer_Slider_2 $valDimDimmer") }
############################

Vielleicht kann's noch jemand brauchen.

gruss ivo
« Letzte Änderung: 02 Juni 2020, 10:40:01 von ivor »

Offline ivor

  • New Member
  • *
  • Beiträge: 37
Nach FHEM Update werden I/O nicht mehr angesprochen
« Antwort #140 am: 20 Januar 2022, 20:17:07 »

Salü zäme

Ich habe heute mein fhem von 25359 (20.12.2021) auf 25489 (17.1.2022) upgedatet mit dem Resultat, dass sämtliche Esera I/O's nur noch als initialized gemeldet werden. Temperatursensoren funktionieren nach wie vor problemlos. Nach dem restore von fhem.pl funktionierte alles wieder einwandfrei. Anbei ein diff der beiden fhem.pl versionen, der vielleicht weiter hilft.

22c22
< # $Id: fhem.pl 25359 2021-12-20 10:51:01Z rudolfkoenig $
---
> # $Id: fhem.pl 25489 2022-01-17 21:02:51Z rudolfkoenig $
276c276
< my $cvsid = '$Id: fhem.pl 25359 2021-12-20 10:51:01Z rudolfkoenig $';
---
> my $cvsid = '$Id: fhem.pl 25489 2022-01-17 21:02:51Z rudolfkoenig $';
4110a4111,4112
>         my ($order, $mname) = split(":", $m);
>         next if($modules{$mname}{LOADED}); # checked in the loop above, #125292
4112,4113d4113
<           my ($order, $mname) = split(":", $m);
<
4131a4132
>               delete($hash->{".clientArray"});
4143d4143
<           delete($hash->{".clientArray"});
5362a5363
>       return ("error parsing '$in2'", undef) if($in2 !~ m/^\s*$/);
5391,5392c5392,5393
<       Log 1, "json2namevalue: Error parsing >$val< for prefix/name:$prefix$name";
<       $in = "";
---
>       return ("error parsing '$val'", undef);
>
5398,5405c5399,5400
<   $in =~ s/\s+$//;
<   my $err;
<   ($err,$in) = eObj(\%ret, "", $in, "", $prefix, 1);
<   if($err) {
<     Log 4, $err;
<     %ret = ();
<     return \%ret;
<   }
---
>   my ($err, undef) = eObj(\%ret, "", $in, "", $prefix, 1);
>   return { json2nameValueErrorText=>$err, json2nameValueInput=>$in } if($err);

Im fhem.log kann ich dann z.B. folgendes finden:
2022.01.20 20:04:12 4: EseraOneWire (owEseraCtrl01) - forwarding reading to clients: 11228_1800001A2F6F1129_5_4_11000011
2022.01.20 20:04:12 5: owEseraCtrl01: dispatch 11228_1800001A2F6F1129_5_4_11000011
2022.01.20 20:04:12 5: Starting notify loop for owEseraCtrl01, 1 event(s), first is UNKNOWNCODE 11228_1800001A2F6F1129_5_4_11000011
2022.01.20 20:04:12 3: owEseraCtrl01: Unknown code 11228_1800001A2F6F1129_5_4_11000011, help me!

Ob das nun eher hier oder in einem anderen Teil vom Forum besser platziert ist, weiss ich nicht...

gruss ivo

Offline pizmus

  • Developer
  • Full Member
  • ****
  • Beiträge: 124
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #141 am: 20 Januar 2022, 22:05:26 »
Danke für die Informationen. Ich schaue mir das bald an. Wegen anderer Verpflichtungen wird es wahrscheinlich einige Tage dauern.
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline ivor

  • New Member
  • *
  • Beiträge: 37
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #142 am: 21 Januar 2022, 00:42:30 »
Ich habe da noch etwas genauer geschaut und die letzten releases durchprobiert:

bis 25456 (https://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl?rev=25456) hat es funktioniert,
ab 25489 (https://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl?rev=25489)  (25517, 25521) nicht mehr.

Anbei der diff zwischen 25456 und 25489:
4111c4111,4112
<         next if($modules{$m}{LOADED}); # checked in the loop above, #125292
---
>         my ($order, $mname) = split(":", $m);
>         next if($modules{$mname}{LOADED}); # checked in the loop above, #125292
4113,4114d4113
<           my ($order, $mname) = split(":", $m);

...und wenn ich in der Zeile 4112 $mname durch $m ersetze funktioniert's auch mit dem Release 25489 wieder, jedoch keinen Plan, ob ich damit was anderes kaputt mache.


Ich werde noch hier auf diesen Beitrag verweisen: https://forum.fhem.de/index.php/board,35.0.html

gruss ivo
« Letzte Änderung: 21 Januar 2022, 00:58:48 von ivor »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline pizmus

  • Developer
  • Full Member
  • ****
  • Beiträge: 124
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #143 am: 24 Januar 2022, 23:22:27 »
Hi Ivo,
Danke für die gute Vorarbeit. Ich habe die MatchList korrigiert, so wie in den von Dir verlinkten Forum-Beiträgen beschrieben. Bitte mach gelegentlich einen Update und lass mich wissen ob es wieder geht.
Gruß
pizmus

Offline ivor

  • New Member
  • *
  • Beiträge: 37
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #144 am: 27 Januar 2022, 08:52:39 »

Salü pizmus

Alles wieder bestens!

Getestet mit fhem.pl 25563.

Liebe Dank und gruss

Ivo

Offline pizmus

  • Developer
  • Full Member
  • ****
  • Beiträge: 124
Antw:neues Modul 66_EseraOneWire für den Esera 1-Wire Controller
« Antwort #145 am: 05 Februar 2022, 08:41:05 »
66_EseraMulti unterstützt jetzt den Solar Sensor Esera 11112. Dank und Gruß an Ivo!
Gefällt mir Gefällt mir x 1 Liste anzeigen