Fritzbox 7170 ohne Freetz mit Fhem 5.4

Begonnen von olbetec, 18 März 2013, 10:41:35

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Ich habe versucht nach 5.3 die Funktion FB_checkPw auf das neue FritzOS 5.5 multi-user Login anzupassen, und dabei die Kompatibilitaet zu behalten. Das hat zwar bei mir getan, aber bei vielen anderen nicht. Dass es fuer "single-user-login" auch nicht mehr funktioniert, ist mir neu.
Inzwischen rate ich generell von der Verwendung dieser Funktion ab.

>Gefühlt ist 5.4 auch langsamer als 5.3 ...

Sind ja leider auch Unmengen an neuen Features dabei, egal wie ich versuche dagegen anzugehen :)
Vermutlich normal fuer so ein Projekt wie FHEM. Evtl. hilft longpoll fuer FHEMWEB abzuschalten, dieser ist jetzt von Haus aus an. Apropos: 5.5 steht vor der Tuer...

PeMue

Hallo Rudolf,

komischerweise funktionierte es heute morgen, ggf. war das Passwort noch im Browser Cache, wer weiß?
Ich würde mal ein funktionierendes fb7170-addon Paket für die FritzBox 7170 zusammenzustellen.
Könntest Du dies in fhem v5.5 mit integrieren?

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

rudolfkoenig

>  Könntest Du dies in fhem v5.5 mit integrieren?

Prinzipiell schon, haengt natuerlich von den Details ab :)

Daniel_B

Hallo,

denke dass das Passwort wirklich für ne Ewigkeit im Cache bleibt.
Ich muss bei meinem 5.4 auf der 7170 auch nur alle paar Tage das Passwort eingeben.

Und ja, 5.4 ist massiv langsamer als 5.3

MfG Daniel

rudolfkoenig

>  Und ja, 5.4 ist massiv langsamer als 5.3

Wenn ihr mit konkreten Zahlen, ein fhem.cfg + Anleitung kommt, dann waere ich bereit das zu pruefen.

PeMue

Hallo Rudolf,

mit dem fhem.cfg kann ich dienen:
# new line for Fritz Box 7170
attr global autoload_undefined_devices 1

attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .                  # where our FHEM directory is
attr global statefile ./log/fhem.save  # where to save the state of the devices
attr global verbose 3                  # "normal" verbosity (min 1, max 5)
attr global motd SecurityCheck:\
\
Running with root privileges.\
Restart fhem for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\

# new line for Fritz Box 7170
attr global userattr devStateIcon icon sortby webCmd

define telnetPort telnet 7072 global   # our TCP/IP port
# line from below for Fritz Box 7170 (check telnet with password)
attr telnetPort password {use FritzBoxUtils;;FB_checkPw("localhost","$password")}

define WEB FHEMWEB 8083 global
# line from below for Fritz Box 7170 (check FHEMWeb with password)
attr WEB basicAuth {use FritzBoxUtils;;FB_checkPw("localhost","$password")}
# line from below for Fritz Box 7170 (check telnet with own user and password, edit user and password)
#attr WEB basicAuth {"$user:$password" eq "my_user:my_pw"}

define WEBphone FHEMWEB 8084 global
# line from below for Fritz Box 7170 (check WEBphone with password)
attr WEBphone basicAuth {use FritzBoxUtils;;FB_checkPw("localhost","$password")}
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
# line from below for Fritz Box 7170 (check WEBtablet with password)
attr WEBtablet basicAuth {use FritzBoxUtils;;FB_checkPw("localhost","$password")}
attr WEBtablet stylesheetPrefix touchpad

# fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate autosave 1
attr autocreate device_room %TYPE
attr autocreate filelog ./log/%NAME-%Y.log
attr autocreate weblink 1
attr autocreate weblink_room Plots

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create

# If the above notify did not help, then you probably have to enable some of
# the following lines. Verify first that /dev/xxx ist correct.

#define FHZ FHZ /dev/USB0
#define CUL CUL /var/ttyACM0@38400 1234
#attr CUL rfmode HomeMatic

#define EUL TCM 310 /dev/ttyACM0@57600
#define BscBor TCM 120 /dev/ttyUSB0@9600
#define BscSmartConnect TCM 310 /dev/ttyUSB0@57600

#-----------------------------------------------------------------------------
# below are the specific settings for PeMue (FritzBox), no FHT address
define PMCUNO01 CUL 192.168.178.60:2323 0000
attr PMCUNO01 rfmode SlowRF
# adjust CUNO's frequency for EM1000x
set PMCUNO01 freq 868.290
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# definition of EM1000S at channel 1
define Stromverbrauch CUL_EM 1 75 900 0.23564 6.02
attr Stromverbrauch room Strom_log
define Stromverbrauch_log FileLog ./log/verbr-%Y-%m.log Stromverbrauch:CNT.*
attr Stromverbrauch_log room Strom_log
define Stromverbrauch_d_wl weblink fileplot Stromverbrauch_log:power8:CURRENT
attr Stromverbrauch_d_wl label "Verbrauch (Leistung): Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr Stromverbrauch_d_wl room Strom
define Stromverbrauch_tag_log FileLog ./log/verbr-tag-%Y.log Stromverbrauch:cum_.*
attr Stromverbrauch_tag_log room Strom_log
define Stromverbrauch_m_wl weblink fileplot Stromverbrauch_tag_log:energy5day:CURRENT
attr Stromverbrauch_m_wl fixedrange month
attr Stromverbrauch_m_wl label "Verbrauch (Energie): Sum $data{sum1}, Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr Stromverbrauch_m_wl room Strom
define Stromverbrauch_y_wl weblink fileplot Stromverbrauch_tag_log:energy5month:CURRENT
attr Stromverbrauch_y_wl fixedrange year
attr Stromverbrauch_y_wl label "Verbrauch (Energie): Sum $data{sum1}, Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr Stromverbrauch_y_wl room Strom
# Abgleich mit Zählerstand im Keller mit
# { setReadingsVal($defs{Stromverbrauch},"basis",<basiswert>,TimeNow()) }
# auf der Konsole, wobei <basisWert> = <zaehlerwert> * 75 - <total_cnt>, <total_cnt> aus Event Monitor
# 31.05.2013: fhem: 39258.3 Zähler: 38589.3
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# definition of EM1000S at channel 4
define Stromerzeugung CUL_EM 4 375 4500 0.4675 0
attr Stromerzeugung room Strom_log
define Stromerzeugung_log FileLog ./log/erz-%Y-%m.log Stromerzeugung:CNT.*
attr Stromerzeugung_log room Strom_log
define Stromerzeugung_d_wl weblink fileplot Stromerzeugung_log:power8:CURRENT
attr Stromerzeugung_d_wl label "Erzeugung (Leistung): Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr Stromerzeugung_d_wl room Strom
define Stromerzeugung_tag_log FileLog ./log/erz-tag-%Y.log Stromerzeugung:cum_.*
attr Stromerzeugung_tag_log room Strom_log
define Stromerzeugung_m_wl weblink fileplot Stromerzeugung_tag_log:energy5day:CURRENT
attr Stromerzeugung_m_wl fixedrange month
attr Stromerzeugung_m_wl label "Erzeugung (Energie): Sum $data{sum1}, Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr Stromerzeugung_m_wl room Strom
define Stromerzeugung_y_wl weblink fileplot Stromerzeugung_tag_log:energy5month:CURRENT
attr Stromerzeugung_y_wl fixedrange year
attr Stromerzeugung_y_wl label "Erzeugung (Energie): Sum $data{sum1}, Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr Stromerzeugung_y_wl room Strom
# Abgleich mit Zählerstand im Keller mit
# { setReadingsVal($defs{Stromerzeugung},"basis",<basiswert>,TimeNow()) }
# auf der Konsole, wobei <basisWert> = <zaehlerwert> * 375 - <total_cnt>, <total_cnt> aus Event Monitor
# 31.05.2013: fhem: 22631.1 Zähler: 22486.2
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# FS20 for Camera
define FS20_54fc00 FS20 54fc 00
attr FS20_54fc00 room FS20
define FileLog_FS20_54fc00 FileLog ./log/FS20_54fc00-%Y-%m.log FS20_54fc00
attr FileLog_FS20_54fc00 logtype text
attr FileLog_FS20_54fc00 room FS20
define FS20_54fc01 FS20 54fc 01
attr FS20_54fc01 room FS20
define FileLog_FS20_54fc01 FileLog ./log/FS20_54fc01-%Y-%m.log FS20_54fc01
attr FileLog_FS20_54fc01 logtype text
attr FileLog_FS20_54fc01 room FS20
# check if {FritzBoxCallNr("**9")} works
# define FS20_54fc00_on notify FS20_54fc00:.* {FritzBoxCallNr("**9")}
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# show parameters of FritzBox (added in 99_Utils.pm)
define FritzBoxValues_wl weblink htmlCode {ShowFritzBoxValues()}
attr FritzBoxValues_wl room Status_all

define FritzBoxRAM dummy
attr FritzBoxRAM room Status
define FritzBoxRAM_log FileLog ./log/fb_ram-%Y-%m.log FritzBoxRAM
attr FritzBoxRAM_log room Status
#define FritzBoxRAM_at at +*00:02 { fhem("trigger FritzBoxRAM ".FritzRAMswap("R")) }
define FritzBoxRAM_at at +*00:02 { fhem("set FritzBoxRAM ".FritzRAMswap("R")) }
attr FritzBoxRAM_at room Status

define FritzBoxswap dummy
attr FritzBoxswap room Status
define FritzBoxswap_log FileLog ./log/fb_swap-%Y-%m.log FritzBoxswap
attr FritzBoxswap_log room Status
#define FritzBoxswap_at at +*00:02 { fhem("trigger FritzBoxswap ".FritzRAMswap("S")) }
define FritzBoxswap_at at +*00:02 { fhem("set FritzBoxswap ".FritzRAMswap("S")) }
attr FritzBoxswap_at room Status

define FritzBoxload dummy
attr FritzBoxload room Status
define FritzBoxload_log FileLog ./log/fb_load-%Y-%m.log FritzBoxload
attr FritzBoxload_log room Status
#define FritzBoxswap_at at +*00:02 { fhem("trigger FritzBoxload ".FritzLoad("log")) }
define FritzBoxload_wl weblink fileplot FritzBoxload_log:fbload4:CURRENT
attr FritzBoxload_wl label "Fritz Box Auslastung: Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr FritzBoxload_wl room Status
define FritzBoxload_at at +*00:02 { fhem("set FritzBoxload ".FritzLoad("log")) }
attr FritzBoxload_at room Status

#-----------------------------------------------------------------------------
# show date for plots
define 0_date_wl weblink htmlCode {qx(date "+%d.%m.20%y %H.%M.%S")}
attr 0_date_wl room Strom

#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# from here new items from autocreate
#-----------------------------------------------------------------------------

Bezüglich der Geschwindigkeit muss ich mal 5.3 wieder hochfahren und meinen Raum Strom anklicken. Der hat 6 Grafiken aus zwei Logdateien und braucht mit fhem 5.4 ca. 19 s das erste Mal und mit einem reload ca. 10 s (Dateien von heute, 2x ca. 250 Werte aus einer Monatsdatei mit ca. 300 Werten pro Tag, 2x ca. 25 Werte aus einer Jahresdatei mit ca. 240 Werten und 2x 3 Werte aus derselben Datei).
Mit fhem 5.3 (derselbe Raum, dieselben Daten) das erste Mal ca. 6 s und ein reload ca. 4 s.
Reicht das für ein erstes "Anschauen"?

Jetzt muss ich wieder fhem 5.4 hochfahren ;-)

Danke + Gruß

PeMue

Nachtrag:

fhem 5.3:
# free
              total         used         free       shared      buffers
  Mem:        30316        28292         2024            0          300
 Swap:        32760         2400        30360
Total:        63076        30692        32384

fhem 5.4:
# free
              total         used         free       shared      buffers
  Mem:        30316        29244         1072            0          420
 Swap:        32760         3564        29196
Total:        63076        32808        30268
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

rudolfkoenig

Kannst Du das bitte die Zeiten auch nach einem update testen? Ich habe unlaengst ein FileLog Fehler entfernt, der genauso auswirken koennte. Wenn das nichts ausmacht, dann haette ich gerne die Logdatei samt .gplot Definition.

Eine gewachsene Hauptspeicherbelegung ist klar (habe ich schon features gesagt?), und haengt hauptsaechlich von dem verwendeten Modulen ab.

PeMue

Hallo Rudolf,

dann muss ich mal schauen, wie ich ein Update bei der Fritz Box 7170 schaffe, auf jeden Fall mal Backup aus, da tar zwar da ist, jedoch gzip fehlt. Im Zweifelsfall mache ich das halt "per Hand".

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

rudolfkoenig

> auf jeden Fall mal Backup aus

attr global backup_before_update 0

PeMue

Hallo Rudolf,

aktuelle Version geht schneller als die 5.4 (ca. 10 s bzw. reload ca. 6 s).
Backup aus, update starten und warten!!!
Nach ca. 12 Minuten nach update check:
List of new / modified files since last update:
nothing to do ...
Allerdings hatte ich nach shutdown restart zwei Instanzen von perl laufen. Habe dann beide gestoppt und nochmal hochgefahren ...
Anbei auch die Prozessorlast:

(siehe Anhang / see attachement)

Dummerweise loggt mir fhem meine Daten der Prozessorlast nicht mehr, aber das werde ich auch noch lösen ...

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

PeMue

Hallo zusammen,

jetzt weiß ich auch, warum die Prozessorlast nicht mehr mitgeloggt wird: weil die 99_Utils.pm überschrieben werden. Originalinhalt wieder reinkopieren und alles geht wieder. Es wäre aus meiner Sicht schöner, wenn es einen "privaten" Bereich gäbe, bei dem die Funktionen nach einem Update erhalten bleiben.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser


PeMue

Zitat99_myUtils.pm ?
Naja, wer lesen kann, ist klar im Vorteil, was so zwei Buchstaben ausmachen ...
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

PeMue

Hallo zusammen,

so, jetzt habe ich bei meiner alten Fritz Box 7170 fhem 5.4 drauf (betateilchen: Du kannst den kompletten Post ignorieren ;-))

1 Kurzanleitung bei Neuinstallation:
1a. ggf. USB Stick mit FAT32 formatieren (Achtung: Daten gehen verloren!)
1b. fhem ZIP Datei für 7270 herunterladen und im Wurzelverzeichnis auspacken
1c. das fb7170-addon.zip herunterladen und auf dem Stick im Verzeichnis /fhem entpacken (keine Angst, die Originaldateien sind als *.org im Paket mit drin)
1d. USB Stick wieder in die Fritz Box einstecken und warten, bis er gemountet ist
1e. auf der Fritz Box per telnet einloggen und in das Verzeichnis /var/media/NEW_LINK/fhem wechseln (oder alternativ in das Verzeichnis /var/media/ftp/<stickname>)
./startfhemdauert ein bisschen, da Swap erstellt wird und die Treiber geladen werden (momentan ist nur CUL voreingestellt)
1f. mit fritz.box:8083/fhem auf der Weboberfläche mit dem Passwort der Fritz Box einloggen

2 Falls schon einmal fhem installiert war:
2a. fhem mit ./stopfhem stoppen (falls das bei Euch schon drauf ist)
2b. Stick in der Weboberfläche der FritzBox sicher entfernen und abziehen
2c. am PC das ursprüngliche Verzeichnis fhem in fhem_v5.x (x für die entsprechende Version, die vorher installiert war) umbenennen, Daten sichern
2d. Schritte 1b. und 1c. ausführen
2e. Logdateien aus dem alten Verzeichnis /fhem_v5.x/log in das neue Verzeichnis /fhem/log kopieren
2e. eigene Module aus dem alten Verzeichnis /fhem_v5.x/FHEM kopieren (z.B. 99_myUtils.pm)
2f. eigene Plotdefinitionen aus dem Verzeichnis /fhem_v5.x/www/gplot kopieren
2g. den Rest der eigenen fhem.cfg in die neue fhem.cfg reinkopieren
2g. ab 1d. weitermachen

3 fhem reboot fest machen:
3a: wenn alles funktioniert, die Datei autostart.txt anschauen und entsprechenden Befehl eingeben, beim Neustart blinkt die Info LED während fhem hochfährt

4 fhem stoppen:
siehe 2a., das Skript ist enthalten

5 Anpassungen:
Für die Konfiguration der Startdatei (startfhem) ggf. einzelne Zeilen wieder aktivieren durch Löschen der Kommentare, Voreinstellung ist Fritz Box 7170 und CUL.
Bezüglich Startskript ist Fritz Box 7170 und Fritz Box 7270 V1 gleich, ab V2 gibt es df bzw. modprobe. Swap wird für Fritz Box 7170 und 7270 V1/V2/V3 angelegt, mkswap müsste es ab Fritz Box 7270 v2 geben, aber die erweiterte busybox müsste das genauso können.

Bitte um Infos, falls etwas nicht funktionieren sollte.

@Rudolf: Könntest Du das komplett in der neuen fhem Version integrieren?

Gruß PeMue

Edit:
Ich habe noch gesehen, dass in stopfhem noch etwas verbessert werden kann, Datei siehe Anhang.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Ralph

Moin,
ich möchte mal eben DANKE SCHÖN sagen,
habe FHEM auf meine 7170 umgezogen und das hat mit obiger Anleitung sehr schön geklappt.

Bei mir war der ttyACM0 nicht in dev, sondern in var.

Der Umzug war nötig, weil sich meine 7270 mit 4 Anrufbeantwortern, Calllog, DECT, WLAN und FHEM etwas überfordert gefühlt hat.
Dies äußerte sich in gelegentlichen Dienstverweigerungen.

Nochmals Danke, gut gemacht !
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen