DS2408 Ports aufsplitten

Begonnen von rebs88, 11 November 2013, 10:27:23

Vorheriges Thema - Nächstes Thema

justme1968

@rebs88,@Tobias und @eldrik: könntet ihr mir bitte eure beispiele ein mal komplett mit kurzer beschreibung und screenshot schicken? dann mache ich eine wiki seite wie für die readingsGroup auch.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rebs88

- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Petrosilius Zwackelmann

#32
Hallo FEHEM-Gemeinde,

auch ich will gerade die Kanäle des 2408 aufsplitten. Da habe ich mich über die Codebeispiele gefreut, damit geht das Schalten der Kanäle problemlos.

Ich stolpere jetzt nur über das Problem dass "devStateIcon" nicht wie gewünscht funktioniert.
Dies scheint daran zu liegen dass das Reading "state" dauerhaft auf "off" bleibt.
Kann mir da jemand einen Tipp geben?


define switch_BEWAESSERUNG OWSWITCH DS2408 BDD510000000
attr switch_BEWAESSERUNG IODev 1wire
attr switch_BEWAESSERUNG model DS2408
attr switch_BEWAESSERUNG room AUSSEN


define Ventil_1 readingsProxy switch_BEWAESSERUNG:latch.A
attr Ventil_1 devStateIcon off.*:general_aus on.*:general_an
attr Ventil_1 group Bewässerung
attr Ventil_1 icon sani_sprinkling
attr Ventil_1 room AUSSEN
attr Ventil_1 setFn {($CMD eq "on")?"output A on":"output A off"}
attr Ventil_1 setList on off
attr Ventil_1 valueFn {($VALUE == 0)?"off":"on"}
attr Ventil_1 webCmd on:off
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

justme1968

welche readings hat denn dein DS2408? stehen dort die latch.X readings so wie sie sollen? was passiert wenn du pio.X statt latch.X verwendest ?

devStateIcon sollte glaube ich jeweils ohne das .* definiert werden. STATE ist ja on oder off ohne noch etwas dahinter.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Petrosilius Zwackelmann

Hallo Andre,

danke für deine Unterstützung.
Zitatwelche readings hat denn dein DS2408? stehen dort die latch.X readings so wie sie sollen?
bisher hatte ich Readings wie latch.X (siehe Bild)

Zitatwas passiert wenn du pio.X statt latch.X verwendest ?
Bei Verwendung von pio statt latch ist die Funktion weiterhin gegeben... Die Kanäle des DS2408 werden geschalten, die devIcons gehen aber nicht.

ZitatdevStateIcon sollte glaube ich jeweils ohne das .* definiert werden. STATE ist ja on oder off ohne noch etwas dahinter.
Dies bringt keine Änderung im Verhalten on.* würde nach meinem Verständnis auch bei on-for-timer funktionieren...

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

justme1968

ich meinte die readings im original device (also switch_BEWAESSERUNG). gibt es da die latch.X readings und haben sie da den richtigen status. (oder du hast das bild vergessen)

bitte bau in deine valueFn mal ein Log 3, ">$DEVICE:$READING:$VALUE<";vor dem if ein.

ja. das on.* matched auch auf on-for-timer. aber diesen status wird dein device nie haben weil das on-for-timer über die SetExtension nur emuliert wird. der status wird auch bei on-for-timer nur on sein. den status on-for-timer gibt es nur bei fs20.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Petrosilius Zwackelmann

Hallo Andre,

ok, nun das Bild vom Original-Device im Anhang. Da ist nix mit Latch... ?

Mein valueFn sieht so aus (also ohne ein if)
attr Ventil_1 valueFn {($VALUE == 0)?"off":"on"}

Ich habe verschiedene Versuche unternommen die LOG Zeile einzubauen... immer mit Fehlermeldung z.B.

attr Ventil_1 valueFn Log 3, ">$DEVICE:$READING:$VALUE<";{($VALUE == 0)?"off":"on"}
Global symbol "$VALUE" requires explicit package name at (eval 21138) line 1, <> line 112.

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

justme1968

valueFn funktioniert so das sie das reading das du bei der definition des readingsProxy angibst nimmt und daraus den state erzeugt.

dazu musst du natürlich ein reading verwenden das dein original device auch hat. bei OWDevice wäre das latch.X. du scheinst aber OWSWITCH zu verwenden. dann ist es einfach nur A oder B, ... oder Ventil1, ...

entsprechend den möglichen werten (scheinbar ON und OFF) musst deine valueFn dann etwa so aussehen:attr Ventil_1 valueFn {($VALUE eq "OFF")?"off":"on"}

die fehler kommen weil das Log... hinter die { gehört hätte.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Petrosilius Zwackelmann

Hallo Andre,

nun hab ich es hinbekommen...
Danke für die Unterstützung.

Sonderbar sind die Originalreadings von OWSWITCH mit ON für off und ON für on.


define Ventil_1 readingsProxy switch_BEWAESSERUNG:A
attr Ventil_1 devStateIcon off:general_aus on:general_an
attr Ventil_1 group Bewässerung
attr Ventil_1 icon sani_sprinkling
attr Ventil_1 room AUSSEN
attr Ventil_1 setFn {($CMD eq "on")?"output A on":"output A off"}
attr Ventil_1 setList on off
attr Ventil_1 valueFn {($VALUE eq "ON")?"on":"off"}
attr Ventil_1 webCmd on:off
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Prof. Dr. Peter Henning

Sonderbar ist darangar nichts. ON mit Pfeil nach unten bedeutet, dass der Ausgang extern kurzgeschlossen ist - ein Setting OFF nutzt also dafür gar nichts.

LG

pah

Petrosilius Zwackelmann

Hallo pah,

für den Laien bleit es sonderbar..
Ich spiele gerade mit einem Fertigmodul von eservice-online, alle Relaisausgänge sind derzeit unbeschalten.
Um einen Kurzschluss zu erkennen müsste ein Ausgang doch erst Rückgelesen werden. Das geht sicherlich mit einem DS2408, aber bei diesem 8-fach Schaltmodul dürfte das nicht gehen.

http://www.eservice-online.de/out/media/Anschlussplan%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29%281%29.pdf

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Prof. Dr. Peter Henning

Wenn das Modul OWSWITCH einen DS2408 erkennt, ist auch ein solcher verbaut.

Der Kurzschluss betrifft natürlich nicht die Relaisausgänge - sondern die Ausgänge des DS2408. Und diese werden natürlich gelesen...

Für einen solchen Kurzschluss reicht bei der Hochohmigkeit des Ausgangs bereits ein Widerstand von ein paar kOhm gegen Masse und eine fehlende Versorgungsspannung der Relais.

LG

pah

eldrik

@ andre

ich wollte die Tage meine Rollladensteuerung (bisher hoch runter über if else) um ein stop erweitern, bekomme bei meiner neuen if, elsif, else Konstruktion bei der Fhemweb Auswahl ungleich stop, jedoch direkte Meldungen vom 1Wire Device!

Gehen nicht mehr als zwei Werte, für setList, die über if else unterschieden werden können oder liegt es an meiner Konstruktion?

{
my $window_contact = ReadingsVal("Contact_OG_rechts1","sensed.4","0");
my $window_opener = "Rollladen_Gaestezimmer_rechts";
my $window_shutter = "Rollladen_Bad_klein";
my $duration_shutter = 100;
my $duration_opener = 15;
my $duration_pause = 0.2;

if ($CMD eq "stop") {
fhem
"set $window_shutter PIO.A 1;
set $window_shutter PIO.B 1;
sleep $duration_pause;
set $window_shutter PIO.A 0;
set $window_shutter PIO.B 0";


} elsif ($CMD eq "hoch") {
if ($window_contact == 1)
{
fhem
"set $window_shutter PIO.A 1;
sleep $duration_pause;
set $window_shutter PIO.A 0";

if ($duration_shutter > 0)
{
fhem
"sleep $duration_shutter;
set $window_shutter PIO.A 1;
set $window_shutter PIO.B 1;
sleep $duration_pause;
set $window_shutter PIO.A 0;
set $window_shutter PIO.B 0";
}
}
} elsif ($CMD eq "runter") {
if ($window_contact == 1)
{
fhem
"set $window_opener PIO.B 1;
sleep $duration_pause;
set $window_opener PIO.B 0";

if ($duration_opener > 0)
{
fhem
"sleep $duration_opener;
set $window_opener PIO.A 1;
set $window_opener PIO.B 1;
sleep $duration_pause;
set $window_opener PIO.A 0;
set $window_opener PIO.B 0";
}
fhem
"set $window_shutter PIO.B 1;
sleep $duration_pause;
set $window_shutter PIO.B 0";

if ($duration_shutter > 0)
{
fhem
"sleep $duration_shutter;
set $window_shutter PIO.A 1;
set $window_shutter PIO.B 1;
sleep $duration_pause;
set $window_shutter PIO.A 0;
set $window_shutter PIO.B 0";
}
}
}else {
fhem
"set $window_shutter PIO.B 1;
sleep $duration_pause;
set $window_shutter PIO.B 0";
if ($duration_shutter > 0)
{
fhem
"sleep $duration_shutter;
set $window_shutter PIO.A 1;
set $window_shutter PIO.B 1;
sleep $duration_pause;
set $window_shutter PIO.A 0;
set $window_shutter PIO.B 0";
}
}

}


Greetz
Eldrik


justme1968

was genau meinst du mit 'direkte meldungen' ?

es gibt keine einschränkung hinsichtlich der anzhal der kommandos.

die einrückungen deiner klammer ebenen stimmt zumindest hier in der web ansicht nicht mit der tatsächlichen klammer hierarchie überein. vielleicht gibt es hier ein problem ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

eldrik

folgende Meldung erhalte ich:

Unknown argument hoch, choose one of interval PIO.A PIO.ALL PIO.B PIO.BYTE

Ja die Hierarchie dürfte in der Ansicht nicht stimmen, vom verschachteln her würde ich zumindest meinen das es passt.

Greetz
Eldrik