Neue 1-Wire-Module für Raspberry Pi u.a.

Begonnen von Dr. Boris Neubert, 23 Dezember 2012, 17:26:08

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Zitat von: Willi schrieb am So, 23 Dezember 2012 21:03Hallo Boris,
fhem> define myOWServer OWServer 222.222.222.222:4301

Mir fällt gerade noch auf, daß Du 4301 als Port hast. Ist das so gewollt? Der Standardport ist nämlich 4304.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Reinerlein

Hallo,

also ich habe das Modul auch gerade probiert. Im Log erhalte ich bei Verbose 4 dann auch die Ausgabe, dass die Verbindung mit owserver angeblich erfolgreich zustandegekommen ist. Danach ist aber Ruhe auf der Ecke.
Ich erhalte auch mit "get devices" keine Ausgabe, allerdings auch keinerlei Fehlermeldung, einfach stille.

Wenn ich im Filesystem schaue, sehe ich meinen angeschlossenen Temperatursensor. Seitens OWFS sollte also erstmal alles stimmen.

Was kann ich denn noch tun, um das Problem einzugrenzen?

Danke schon mal, sagt das Reinerlein

appi

Hallo Boris
danke für deine Hilfe. Mit wenig perl Erfahrung  habe ich mal die folgenden anpassungen gemacht:

******************************************************************************
 # http://owfs.sourceforge.net/family.html
      my $family= substr($hash->{fhem}{address}, 0, 2);
         if($family eq "10") {

        # 18S20 high precision digital thermometer
        unshift @getters, qw(temperature templow temphigh);
        unshift @setters, qw(templow temphigh);
        unshift @polls, qw(temperature);
        $interface= "temperature";
      }
   elsif($family eq "28") {

        # 18B20 high precision digital thermometer
        unshift @getters, qw(temperature templow temphigh);
        unshift @setters, qw(templow temphigh);
        unshift @polls, qw(temperature);
        $interface= "temperature";
      }
   elsif($family eq "1D") {
        # 2423 4k RAM with counter
        unshift @getters, qw(counters.A counters.B);    
        unshift @setters, qw();
        unshift @polls, qw(counters.A counters.B);
        $interface= "count";
      }
   elsif($family eq "3A") {
        # 2413 1-Wire Dual Channel Addressable Switch
        unshift @getters, qw(PIO.A PIO.B);    
        unshift @setters, qw(PIO.A PIO.B);
        unshift @polls, qw(PIO.A PIO.B);
        $interface= "state";
}

******************************************************************************

Funktioniert schon mal gut. Nun bräuchte ich noch Hilfe bei der Umrechnung des Zählersstandes in KG und den Zähler Offset (Nullstellung).
Sollte das ins selbe Modul oder bersser in ein eigens nur für den Counter?

gruss
Remo

Dr. Boris Neubert

Zitat von: Reinerlein schrieb am Do, 27 Dezember 2012 13:05Hallo,
Was kann ich denn noch tun, um das Problem einzugrenzen?

Die relevanten Teile Deiner Konfiguration hier posten.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Martin Fischer

hiya boris,

OWNet.pm besteht im wesentlichen aus POD einträgen. wenn man das auf die reine funktionalität beschrängt, dann könntest du auch den relevanten code direkt übernehmen, so dass das OWNET.pm modul nicht mehr benötigt wird. das würde vorallem den fritzboxen, etc. entgegen kommen.

ich wollte das seinerzeit auch immer in OWFS.pm einbauen aber aus zeitgründen nie umgesetzt.

gruss martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

Dr. Boris Neubert

Zitat von: appi schrieb am Do, 27 Dezember 2012 13:45Funktioniert schon mal gut. Nun bräuchte ich noch Hilfe bei der Umrechnung des Zählersstandes in KG und den Zähler Offset (Nullstellung).
Sollte das ins selbe Modul oder bersser in ein eigens nur für den Counter?

Ich nehme an, daß Du jetzt irgendwelche Werte in den Readings hast.

Ich würde jetzt einen Dummy für KG anlegen und mit einem Notify füttern:


define Counter OWDevice # das ist Dein Counter
define KG dummy # das Gerät enthält die umgerechneten Werte
define Umrechner notify Counter:Counters.A { my $kg= ReadingsVal("Counter","Counters.A",0)*0.815; fhem("set Counter $kg"); }


Wenn der Counter einen neuen Wert nach Counters.A schreibt, wird das notify aufgerufen. Das rechnet das Readings Counters.A in kg um, indem der Zählerstand mit 0,815 multipliziert wird.

Was muss für Nullstellung gemacht werden?

Grüsse
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Zitat von: Martin Fischer schrieb am Do, 27 Dezember 2012 14:40OWNet.pm besteht im wesentlichen aus POD einträgen. wenn man das auf die reine funktionalität beschrängt, dann könntest du auch den relevanten code direkt übernehmen, so dass das OWNET.pm modul nicht mehr benötigt wird. das würde vorallem den fritzboxen, etc. entgegen kommen.

Ich hatte mir auch genau das überlegt sowie die Alternative, OWNET.pm bei FHEM mitzuverteilen.

Wie ist das denn mit dem Urheberrecht in beiden Fällen?

Zur Not könnte ich den Modulautor Paul H. Alfille fragen. Vielleicht wird OWFS ja auch gleich so angepaßt, daß CUNO unterstützt wird, oder wird der schon?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Willi

Zitat von: Dr. Boris Neubert schrieb am Do, 27 Dezember 2012 12:47Mir fällt gerade noch auf, daß Du 4301 als Port hast. Ist das so gewollt? Der Standardport ist nämlich 4304.

Grüße
Boris
Ja, ist richtig. Ich mag keine Standard-Ports. Mein Fehler, dass ich meinen geheimen Port hier gepostet habe..... ;-)
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Martin Fischer

Zitat von: Dr. Boris Neubert schrieb am Do, 27 Dezember 2012 15:07Ich hatte mir auch genau das überlegt sowie die Alternative, OWNET.pm bei FHEM mitzuverteilen.

Wie ist das denn mit dem Urheberrecht in beiden Fällen?

Zur Not könnte ich den Modulautor Paul H. Alfille fragen. Vielleicht wird OWFS ja auch gleich so angepaßt, daß CUNO unterstützt wird, oder wird der schon?

das brauchst du nicht, boris. owfs steht unter GPL 2. und wenn du die entsprechenden codeabschnitte aus OWNET.pm übernimmst und dann einen hinweis auf das originale OWNET.pm machst, sollte das eigentlich in ordnung gehen.

OWNET.pm zu verteilen war auch mal meine ursprüngliche idee im zusammenhang mit der neuen struktur. musst du mal in developers suchen, da hatte ich genau für sowas innerhalb von $moddir eigentlich ein verzeichnis vorgesehen. weiss aber eben nicht mehr wie ich das genannt hatte (//images/smiley_icons/icon_smile.gif)

gruss martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

Dr. Boris Neubert

Zitat von: Martin Fischer schrieb am Do, 27 Dezember 2012 15:30OWNET.pm zu verteilen war auch mal meine ursprüngliche idee im zusammenhang mit der neuen struktur. musst du mal in developers suchen, da hatte ich genau für sowas innerhalb von $moddir eigentlich ein verzeichnis vorgesehen. weiss aber eben nicht mehr wie ich das genannt hatte (//images/smiley_icons/icon_smile.gif)

siehe [Beitrag #30972] (wie verlinke ich das?(//images/smiley_icons/icon_wink.gif)

/usr/share/fhem/lib/site

Wie wäre es, wenn wir OWNet.pm nach

$modpath/lib

schubsen? Wie bringt man perl bei, dort nach Modulen zu suchen?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Martin Fischer

aus meiner sicht spricht nichts gegen

$modpath/lib
schau mal in 98_fheminfo.pm. da prüfe ich am anfang ob ein bestimmtes perlmodul exisitert. und wenn es dann exisitert dann kannst du es mittels

use
einbinden. dazu kannst du den relativen pfad angeben. also statt use FOO::BAR; geht auch ein use ../foo/bar.pm

oder noch eleganter:
du, rudi oder ich ergänzen den suchpfad für module in fhem.pl. haben wir für die updategeschichte auch schon ergänzt.

gruss martin

p.s.: beitrag einfach über url verlinken..
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

Reinerlein

Hallo Boris,

naja, die Konfiguration ist ja noch nicht so komplex:
define OWServer OWServer 192.168.0.11:4304
attr OWServer room Server


Wenn ich mir das Element mit "list OWServer" anzeigen lasse, erhalte ich folgende Werte:
Internals:
   CFGFN      /etc/fhem/config/1Wire.cfg
   DEF        192.168.0.11:4304
   NAME       OWServer
   NR         134
   STATE      Initialized
   TYPE       OWServer
   Fhem:
     protocol   192.168.0.11:4304
Attributes:
   room       Server


Das sieht meiner Meinung nach alles gut aus.
Wenn ich jetzt aber ein "get OWServer devices" ausführe, dann erhalte ich einfach keine Ausgabe des Ergebnisses - es wird einfach wieder diesselbe Seite angezeigt. Es wurden auch keine Devices angelegt oder ähnliches. Im Log steht zu dem Vorgang nichts.

Ich habe mal zum Testen bei OWFS den Webserver aktiviert, um zu sehen, ob der die Devices überhaupt auflistet. Das sieht auch gut aus. Es wird auch mein Temperatursensor mit korrektem Wert angezeigt.
OWNet.pm habe ich keine im System installierte, sondern direkt deinen Downloadlink verwendet, und die Datei direkt in das FHEM Verzeichnis gelegt. Dazu war auch vor diesem Download eine entsprechende Fehlermeldung im Log. Nach dem Download des Moduls und der Ablage war im Log keine Fehlermeldung mehr.

Es scheint so zu sein, dass der Aufruf
my @dir= split(",", $owserver->dir()); in der Datei OWServer.pm eine leere Liste liefert. Obwohl ja auch mindestens zwei Elemente vorhanden sind: Der USB Adapter mit seiner ID und eben der Temperatursensor. Oder werden reine IDs von $owserver->dir() weggefiltert? Dann könnte es sein, dass nur ein Element kommt, und dann nicht mehr am Komma gesplittet werden kann...

Danke schon mal für deine Hilfe.

Grüße Reinerlein

Reinerlein

Hi nochmal,

ich habe gerade mal eine log-Ausgabe eingebaut:
Log 1, $owserver->dir();
Direkt hinter der normalen Ermittlung (hinter Zeile 186).

Da kommt nur ein Leerstring als Ausgabe im log an...

Vielleicht hilft das ja.

Grüße Reinerlein

eppi

Hallo
Ich habe das die OWServer und OWDevice Module erfolgreich in Betrieb genommen. OWFS habe ich nach der Anleitung von Martin Fischer auf seiner Website entnommen und auf einem Dockstar mit Debian Squeeze installiert.

Zurzeit habe ich einen Temperatur Sensor DS1820 angeschlossen welcher naach Änderung der DeviceFamily in OWDevice von 10 nach 28 (Danke Remo!)auch primar funktioniert. Im Log erscheint nach festgelegten Interval folgende Einträge:

2012.12.28 06:26:34 1: DEBUG>temperature,templow,temphigh,address,alias,family,id,power,type
2012.12.28 06:28:14 1: DEBUG>temperature,templow,temphigh,address,alias,family,id,power,type
2012.12.28 06:29:54 1: DEBUG>temperature,templow,temphigh,address,alias,family,id,power,type
2012.12.28 06:31:34 1: DEBUG>temperature,templow,temphigh,address,alias,family,id,power,type
2012.12.28 06:33:14 1: DEBUG>temperature,templow,temphigh,address,alias,family,id,power,type


Das müllt mein Log so ziemlich zu. Ich habe schon probiert den Loglevel auf 5 zu stellen, jedoch bringt das nichts. Gibt es eine Möglichkeit die Einträge zu eliminieren?

Danke für die tollen Module und die Anleitung für OWFS von Martin! Toll (//images/smiley_icons/icon_lol.gif)

Gruss Dani

Dr. Boris Neubert

Hallo Reinerlein,

laufen OWFS und FHEM auf demselben oder verschiedenen Rechnern und wie sieht die OWFS-Konfiguration /etc/owfs.conf aus?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!