FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Claudius am 29 November 2015, 16:50:51

Titel: DS2406 DS2408 DS2413 Input verarbeiten
Beitrag von: Claudius am 29 November 2015, 16:50:51
Hallo,

trotz intensiver Recherchen komme ich nicht weiter.

Zur Situation:
Busmaster DS2480 am seriellen Port eines PC, dann mehrere DS18S20, je ein DS2413 und DS2408.
Alle Devices werden erkannt, Temperaturen werden ausgelesen. Die Ausgänge lassen sich mit set <name> output x on/off und auch mit Klick auf einen Dummy schalten. Die Status der Ein- und Ausgänge werden im OWSWITCH richtig angezeigt.

define OWio1 OWX /dev/ttyS0

define temp1 OWTHERM 10.XXXXXXXXXXXX 60
attr temp1 IODev OWio1
attr temp1 model DS1820

define schalter1 OWSWITCH 3A.XXXXXXXXXXXX 10
attr schalter1 IODev OWio1
attr schalter1 model DS2413

define Lichtschalter dummy
attr Lichtschalter setList on off

define LichtX notify Lichtschalter set schalter1 output B $EVENT

Nun möchte ich mit dem Input an Eingang A den Ausgang B schalten. Dazu finde ich keinen Ansatz. Alle threads enden wenn es interessant wird.

readingsProxy ändert den Status nicht:
define schalter1A readingsProxy schalter1:A
attr schalter1A valueFn {($VALUE eq "ON.")?"ON":"OFF"}

Andere gefundene Schreibweisen erzeugen Fehlermeldungen:
attr schalter1A valueFn {($VALUE == 0)?"off":"on"}

Erklärungen zu den Schreibweisen finde ich nicht.

Ich bitte um ein vollständiges Codebeispiel mit ein paar erklärenden Worten

Danke!

PS.
Ja, ich habe commandref, Wiki aufmerksam gelesen und das Forum mehrfach durchsucht!
Titel: Antw:DS2406 DS2408 DS2413 Input verarbeiten
Beitrag von: Claudius am 30 November 2015, 07:31:00
Hallo,

danke für die Nachricht.
Wie ich das sehe, werden mit Klick auf on/off der Schalter Licht_1 und Licht_2 die Ausgänge A und B on/off geschaltet und die Status der Ausgänge angezeigt. Richtig?
Das kann man doch auch mit Dummy-Schaltern realisieren.

Ich möchte aber mit dem Input am Eingang A den output des Ausgang B schalten.

Danke für weitere Infos.
Titel: Antw:DS2406 DS2408 DS2413 Input verarbeiten
Beitrag von: Prof. Dr. Peter Henning am 30 November 2015, 19:51:05
Na, dann würde ich doch mal vorschlagen, die Anfängerdoku an ein paar Stellen noch einmal zu lesen, und in der commandref nach "notify" und "DOIF" zu sehen. Da gibt es Codebeispiele ohne Ende. Die sind zwar nicht "maßgeschneidert" - aber dafür umsonst.

Man schaltet nicht mit einem Eingang einen Ausgang. Sondern muss erst einmal den Event des Eingangs abfangen - eben mit einem notify oder DOIF.

Wenn das klappt (z.B. um einen dummy zu setzen), diskutieren wir gerne weiter.

LG

pah
Titel: Antw:DS2406 DS2408 DS2413 Input verarbeiten
Beitrag von: ritchie am 02 Dezember 2015, 19:22:55
Hallo Claudius,

hier ein grobes Beispiel, welches via eines Notifiys eine Eventroutine aufruft. Dieser Teil ist dann perl orientiert.

Zitat
define evt_flDualInput1 notify flDualInput1*:*.* { evtHandlerTuerInformer($NAME,$EVENT);; }

der Teil ist in der "99_myUtils.pm"

sub evtHandlerTuerInformer($$)
{
  my $Component = shift;
  my $State = shift;
  my $Status = " ";
  my $Bereich = " - ";
  my $Tuer = " - " ;

$Status = $State;
$Status =~ s/Status_B:/ /;
$Status =~ s/Status_A:/ /;
$Status = trim( $Status) ;
$Component = trim ($Component );

if($Component eq 'flDualInput1' )
   {
   $Bereich = "Zaehlerschrank";
   if($State !~  m/B:/)
      {
      $Tuer = " Rechts ";
      }
   else
      {
      $Tuer = " Links ";
      }
...
}
Generell hat Dir bereits "pah" die entsprechende Antwort gegeben.

Zitat
Sicher, selber entwickeln macht schlau.
Das hilft bei FHEM sehr, da es doch sehr "speziell" ist.
Zitat
Aber man muss das Rad nicht immer wieder neu erfinden und ich dachte immer, dass Forenmitglieder einander helfen.
Da gebe ich Dir zwar recht, aber alles muss im Rahmen bleiben. Schliesslich ist das für alle hier eine "Privatveranstaltung" und jeder hat auch noch seine eigenen Sorgen.

Ich hoffe, das das entsprechende Beispiel die Richtung vorgegeben hat.

Viele Grüße
R.

Titel: Antw:DS2406 DS2408 DS2413 Input verarbeiten
Beitrag von: Prof. Dr. Peter Henning am 02 Dezember 2015, 19:27:52
ZitatGenerell hat Dir bereits "pah" die entsprechende Antwort gegeben.

Stimmt. Da muss man halt durch und schrittweise vorgehen.

LG

pah