HP1000: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
K (Nun stimmen auch die Überschriftenhierarchien... :-/)
Zeile 18: Zeile 18:
   attr WEBweather webname weatherstation
   attr WEBweather webname weatherstation
=== Definition der Wetterstation ===
=== Definition der Wetterstation ===
Dann wird das Modul noch in Fhem definiert. Die Definition kann mit und ohne Benutzernamen und Passwort erfolgen. Wenn bei der Definition Benutzername und Passwort nicht angegeben werden, werden die von der Wetterstation gesendeten Daten von Fhem nicht überprüft. (Die Station erfordert im Webinterfache immer die Angabe von Benutzername und Passwort!)
Dann wird das Modul noch in Fhem definiert. Die Definition kann mit und ohne Benutzernamen und Passwort erfolgen. Wenn bei der Definition Benutzername und Passwort nicht angegeben werden, werden die von der Wetterstation gesendeten Benutzerdaten von Fhem nicht überprüft. Eine WH2600 Station erfordert im Webinterfache immer die Angabe von Benutzername und Passwort.
Definition mit Benutzername und Passwort:
Definition mit Benutzername und Passwort:
   define Wetterstation HP1000 Benutzer Passwort
   define Wetterstation HP1000 Benutzer Passwort
Definition ohne Benutzername und Passwort:
Definition ohne Benutzername und Passwort:
   define Wetterstation HP1000
   define Wetterstation HP1000
=== Eingaben im Webinterface der Station ===
=== Eingaben im Webinterface der Station ===
Dann muss der Station in deren Webinterface noch gesagt werden, dass die Wetterinformationen an Fhem geschickt werden. Dazu im Webinterface unter "Weather Network" Folgendes eintragen:
Dann muss der Station in deren Webinterface noch gesagt werden, dass die Wetterinformationen an Fhem geschickt werden. Dazu im Webinterface unter "Weather Network" Folgendes eintragen:

Version vom 2. Oktober 2016, 16:03 Uhr

HP1000
Zweck / Funktion
Einbindung einer HP1000 Wetterstation
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Support (Forum) Heizungssteuerung/Raumklima
Modulname 50_HP1000.pm
Ersteller Loredo
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

HP1000

HP1000 ist ein Modul zum Auslesen von HP1000/WH2600 Wetterstationen von renkforce/Froggit, etc.

Funktionsweise des Moduls ist, dass in der Wetterstation eine FHEMWEB Instanz angegeben wird, an die die Wetterstation dann regelmäßig die Daten sendet.

Konfiguration

Die Konfiguration des Moduls erfolgt in drei Schritten:

Definition einer Webinstanz für die Wetterstation

Zunächst muss auf einem eigenen Port eine neue FHEMWEB-Instanz angelegt werden, z.B. mit dem Namen WEBweather. Dieser muss zwingend der Name weatherstation zugewiesen werden. Dieser ist in der Firmware der Stationen fest codiert.

 define WEBweather FHEMWEB 8089 global
 attr WEBweather webname weatherstation

Definition der Wetterstation

Dann wird das Modul noch in Fhem definiert. Die Definition kann mit und ohne Benutzernamen und Passwort erfolgen. Wenn bei der Definition Benutzername und Passwort nicht angegeben werden, werden die von der Wetterstation gesendeten Benutzerdaten von Fhem nicht überprüft. Eine WH2600 Station erfordert im Webinterfache immer die Angabe von Benutzername und Passwort. Definition mit Benutzername und Passwort:

 define Wetterstation HP1000 Benutzer Passwort

Definition ohne Benutzername und Passwort:

 define Wetterstation HP1000

Eingaben im Webinterface der Station

Dann muss der Station in deren Webinterface noch gesagt werden, dass die Wetterinformationen an Fhem geschickt werden. Dazu im Webinterface unter "Weather Network" Folgendes eintragen:

Remote Server      => Customzied
Server IP/Hostname => <Fhem-Domainname> bzw. <Fhem-IP> (s.u.)
Server Port        => Der Port der neuen Webinstanz in Fhem (im Beispiel oben 8089)
Station ID         => selbstgewählter Benutzername
Password           => selbstgewähltes Passwort

Zu Server IP/Hostname: Hier muss entweder der Domainname angegeben werden, unter dem Fhem erreichbar ist (vollständige Domain nicht vergessen!), oder die IP. Wenn in Fhem keine Daten ankommen, ist das hier meist der Knackpunkt. Erfahrungen zeigen, dass teilweise der Domainname nicht vollständig angegeben wurde oder aber der Domainname nicht aufgelöst werden kann (vielleicht gibt es hier Probleme einzelner Stationen, bei der Konfiguration via DHCP den Nameserver-Eintrag richtig umzusetzen). Einfach mal alle Möglichkeiten durchprobieren.

Station ID und Passwort müssen hier angegeben werden. Bei der Definition der Station in Fhem kann man diese angeben (dann wird geprüft, ob die berechtigte Station Daten schickt) oder weglassen (dann werden Benutzername und Passwort nicht von Fhem geprüft).

Tipps, Tricks, Problemlösungen

FileLog

Das Modul definiert bei der Erstellung kein FileLog. Wenn man eines definiert, bietet sich aufgrund der Häufigkeit von Datenübertragungen und damit der Menge an übertragenen Informationen das Loggen nur des T:-Readings an:

 define FileLog_Wetterstation FileLog ./log/Wetterstation-%Y.log Wetterstation:T:.*

Mehr Einträge im T:-Reading

Das Modul liefert standardmäßig nicht alle vom Außensender verfügbaren Daten auch in der T:-Zeile. Wenn man dort - z. B. zum Loggen - alle Daten haben möchte, kann man die übrigen Daten ergänzen. Dafür editiert man die Datei 50_HP1000.pm und ergänzt Zeilen. Im Bereich von Zeile 347 suchen:

    $result = "T: " . $webArgs->{outtemp} if ( defined( $webArgs->{outtemp} ) );
    $result .= " H: " . $webArgs->{outhumi}
      if ( defined( $webArgs->{outhumi} ) );
    $result .= " Ti: " . $webArgs->{intemp}
      if ( defined( $webArgs->{intemp} ) );
    $result .= " Hi: " . $webArgs->{inhumi}
      if ( defined( $webArgs->{inhumi} ) );
    $result .= " W: " . $webArgs->{windspeed}
      if ( defined( $webArgs->{windspeed} ) );
    $result .= " R: " . $webArgs->{rainrate}
      if ( defined( $webArgs->{rainrate} ) );
    $result .= " WD: " . $webArgs->{winddir}
      if ( defined( $webArgs->{winddir} ) );
    $result .= " D: " . $webArgs->{dewpoint}
      if ( defined( $webArgs->{dewpoint} ) );
    $result .= " P: " . $webArgs->{relbaro}
      if ( defined( $webArgs->{relbaro} ) );

und dahinter folgende neue Zeilen einfügen:

    $result .= " U: " . $webArgs->{UV}
      if ( defined( $webArgs->{UV} ) );
    $result .= " L: " . $webArgs->{light}
      if ( defined( $webArgs->{light} ) );
    $result .= " WC: " . $webArgs->{windchill}
      if (defined($webArgs->{windchill}));
    $result .= " RD: " . $webArgs->{dailyrain}
      if (defined($webArgs->{dailyrain}));
    $result .= " RW: " . $webArgs->{weeklyrain}
      if (defined($webArgs->{weeklyrain}));
    $result .= " RM: ".$webArgs->{monthlyrain}
      if (defined($webArgs->{monthlyrain}));
    $result .= " RY: ".$webArgs->{yearlyrain}
      if (defined($webArgs->{yearlyrain}));
    $result .= " WG: ".$webArgs->{windgust}
      if (defined($webArgs->{windgust}));

Um zu verhindern, dass die eigenen Ergänzungen bei einem Update des Moduls überschrieben werden, dann noch 50_HP1000.pm vom automatischen Update ausnehmen:

 attr global exclude_from_update 50_HP1000.pm

Absturz von Fhem wegen Illegal division by zero

Wenn HP1000 Fhem abstürzen lässt mit der Fehlermeldung

2016.10.01 08:51:00 1: PERL WARNING: Use of uninitialized value in division (/) at ./FHEM/50_HP1000.pm line 383.
Illegal division by zero at ./FHEM/50_HP1000.pm line 383.

dann hilft es, die mit + markierten Zeilen (natürlich ohne die +-Zeichen selbst!) in 50_HP1000.pm im sub HP1000_GetSum (um Zeile 400) einzufügen:

    if ($avg) {
+     if (@{ $hash->{helper}{history}{$t} } > 0) {
        $return = sprintf( "%.1f",
            sum( @{ $hash->{helper}{history}{$t} } ) /
              @{ $hash->{helper}{history}{$t} } );

        Log3 $name, 5, "HP1000 $name: Average for $t: $return";
+     }
    }

Falsch angezeigte/zu wenig Readings

Abhängig von der Firmwareversion und/oder dem Modell der Station kann es dazu kommen, dass teilweise nicht alle Readings oder die Readings mit den falschen Einheiten (z. B. Wingeschwindigkeit in mph, obwohl km/h konfiguriert wurde) angezeigt werden. In diesem Fall hilft es, im Webinterface der Wetterstation bei der Definition "Weather Network" den "Server Type" auf "JSP" zu stellen.

Keine Daten in Fhem

Wenn in Fhem keine Daten von der Wetterstation ankommen, liegt das häufig daran, dass FHEM nicht richtig als "Weather Network" konfiguriert wurde. Wenn die erforderlichen Eingaben im Webinterface (s. o.) der Station nicht helfen, kann man sich zum Testen per telnet mit der Wetterstation verbinden (Benutzername admin, Passwort admin). Mögliche Befehle:

help
quit
reboot
Usage: passwd
       Old Password:
       New Password:
       Re-enter New Password:
Usage: username <user name>
Usage: ipconfig
Usage: setip <ip addr>
Usage: setmask <netmask>
Usage: setgateway <ip addr>
Usage: setdns <ip addr>
Usage: setmode <mode>
       <mode>: 0: SERVER     1: CLIENT
Usage: setsrvport <port>
Usage: setdstport <port>
Usage: dhcpclient <status>
       <status>: 0: disable     1: enable
Usage: connectype <protocol>
       <protocol>: 0: TCP     1: UDP
Usage: transmitimer <time>
       <time>: time in ms
Usage: saveconfig
Usage: accessip <index> <ip addr>
       <index>:   index of accessible IP
       <ip addr>: accessible IP address
Usage: setaccip <mode>
       <mode>:  0: disable    1: enable
Usage: setaw <cold start> <authentication fail> <ip changed> <password changed>
       <cold start>:             0: Disable     1: Enable
       <authentication fail>:    0: Disable     1: Enable
       <ip changed>:             0: Disable     1: Enable
       <password changed>:       0: Disable     1: Enable
Usage: setdsthn <Host name/IP>
Usage: tftpsrv <ip addr>
Usage: filename <file name>
Usage: dlfirmware
Usage: seteep <HEX RegStartAddr> <HEX Byte 0> <HEX Byte 1>...<HEX Byte N>
Usage: dbgmsg <mode>
       <mode>: 0: Disable    1: Enable
Usage: connstatus
Usage: ping xxx.xxx.xxx.xxx
Usage: setRTC <HEX RegStartAddr> <HEX Byte 0> <HEX Byte 1>...<HEX Byte N>

Am besten mit "ipconfig" sich die aktuelle Konfiguration anzeigen lassen. Mit ping kann man Verbindungen z. B. zu Fhem testen.