neues Modul 66_EseraOneWire für den Esera 1-Wire Controller

Begonnen von pizmus, 04 Oktober 2018, 22:10:37

Vorheriges Thema - Nächstes Thema

pizmus

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

ivor

#136
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

pizmus

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

pizmus

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

ivor

#139
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

ivor


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

pizmus

Danke für die Informationen. Ich schaue mir das bald an. Wegen anderer Verpflichtungen wird es wahrscheinlich einige Tage dauern.

ivor

#142
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

pizmus

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

ivor


Salü pizmus

Alles wieder bestens!

Getestet mit fhem.pl 25563.

Liebe Dank und gruss

Ivo

pizmus

66_EseraMulti unterstützt jetzt den Solar Sensor Esera 11112. Dank und Gruß an Ivo!

MarkusHiba

#146
Hallo,

ich habe ein 8-Fach Digital Eingang 10-30V, 1-Wire Bus Nummer 11216.

Leider zeigt er mir in Fhem nicht alle 8 Kanäle an sondern nur das als Reading EseraDigitalInOut_EseraOneWireController1_xxxxxxxxx in 32.
wie kann man das ändern das jeder Kanal einzeln als Reading erscheint?

Grüße Markus

Edit: Hat sich erledigt siehe Post #86.

ZitatHast Du einfach nur ein Problem damit, dass alle 8 Ausgänge zusammen mit einem gemeinsamen Wert (Dein Beispiel: 132) ausgegeben werden? Das finde ich auch recht unhandlich. Eigentlich interessiert Dich ja jeder einzelne Ausgang. Dann verwende doch eine Instanz von EseraDigitalInOut pro Ausgang. Dafür sind die letzten zwei Parameter von "define" da.

define LichtWohnzimmer EseraDigitalInOut <EseraOneWireInstanz> <OneWireId> 11228 0 1
define LichtFlur EseraDigitalInOut <EseraOneWireInstanz> <OneWireId> 11228 1 1
define LichtEsszimmer EseraDigitalInOut <EseraOneWireInstanz> <OneWireId> 11228 2 1
define LichtIrgendwo EseraDigitalInOut <EseraOneWireInstanz> <OneWireId> 11228 3 1
...
Mit freundlichen Grüßen

MarkusHiba

jophb

Hallo pizmus,
ich habe den ESERA Sensor MSP 203 Multisensor mit Smoke Detektor (11171). Der ist leider noch nicht in EseraMulti enthalten. Ich habe probiert, die 66_EseraMulti-PM anzupassen, aber irgendwo sind da noch Abhängigkeiten drin, die ich nicht blicke. Deshalb bekomme ich keine Sensorwerte. Ich hatte den 11171 als weiteren Sensor hinzugefügt.
Leider ist der Sensor (Stand Oktober 2024) noch nicht in der ESERA Doku eingepflegt.
Der Sensor ist von der Datenausgabe wie die Sensoren 11151 und 11152. Der fünfte Wert ist der Analogwert des Rauchsensors.
Was muss ich in der Vorverarbeitung (66_EseraOneWire, ???) noch ändern, dass es funktioniert?