VBus in fhem

Begonnen von sweetie-pie, 15 Januar 2013, 12:27:34

Vorheriges Thema - Nächstes Thema

jaydax

Mein lieber herrgesangsverein! es funktioniert! Vielen Dank!
Nun hab ich alle Geräte in einer Logdatei und auch noch jeweils mit dem richtigen Gerätenamen.

Echt super von euch!!!!
Nun kann ich mit meinem Logging beginnen.

Iron-R

Hallo Forengemeinde,

erstmal ein Riesen Kompliment an die Forengemeinde die hier gezeigten Aktivitäten bei der Problemlösung sind gigantisch. Danke!

Nun zu Meiner Frage:
Ich möchte Meine "Deltasol ES" in Fhem einbinden wird dieses Gerät von den zwei Modulen 20_VBUSLAN.pm+21_VBDEV.pm unterstützt.

Danke für Eure Unterstützung
Iron-R
FHem auf Raspi 512MB-Wheezy; 1wire Bus DS2438, DS18B21, DS2423; Vito200; VBus

oldwolf

@Brun,

Soweit ich weiß, ist wurde der aktuelle Stand von Arno selbst entwickelt und hier den ersten "Versuchskaninchen" vorgeführt (ich glaub irgendwo auf Seite 4).
Ich verwende diese Version seither.
Ein paar kleine "Bugs" oder Anpassungen habe ich allerdings auch schon verändert bzw. den Betroffenen hier geholfen. Ich kann mich u.a. an folgende Auffälligkeiten erinnern:

  • Datum verursacht tageweise Ausfälle des Moduls (wenn das Datum am Ende einer Message steht und den Hex-Wert *a annimmt => Die Message endet auf *a und die nächste beginnt mit aa => führt zur Fehlermeldung "wrong message length")
  • und dann die Sache mit den Ausreißern, die ähnlich wie in deinem letzten Beitrag behoben wurde (ich habs nur schnell überflogen). Dürfte so ungefähr das gleiche sein.

Dazu kommt, dass ich versuche, eine VBUSDEV mit möglichst vielen Reglern zu erstellen. Das heißt, immer wenn jemand einen neuen Regler hinzugefügt haben möchte, nehme ich die Änderung in der Datei auf und lade den aktuellen Stand hier ins Forum (wie in Beitrag #199). Mehr mache ich nicht. Deshalb will ich mich jetzt auch nicht hier als "Maintainer" ausgeben.

Gibt es eigentlich nicht irgendwo so eine Portal wo jeder sein Modul hochladen und aktuell halten kann? Wäre wahrscheinlich einfacher und übersichtlicher, als die ergänzte Version der VBUSDEV hier hochzuladen.
Falls du ein paar Änderungen hast, müsste man sich vielleicht mal alle Punkte sammeln und dann ein kleines Update basteln.

@Iron-R
Willkommen hier. Dein Gerät wird noch nicht unterstützt, aber das kann sich schnell ändern... kommt allerdings drauf an, wann ich dazu komme.

Viele Grüße
Robin

schmidi

Hallo zusammen,
hat die integration von dem Solarlog funktioniert? hatte dazu nix mehr gefunden.
Ich hätte hier auch starkes Interesse.

Brun

@oldwolf:

Leider kenne ich momentan kein so ein Portal. Meistens ist es ja nur ein Entwickler der dann im besten Fall immer den #1 Betrag editiert.
Wahrscheinlich muss sich nur einer finden der das mal aufsetzt und betreut.

Ich habe auch noch zwei Geräte:


        "4010" => {"name" => "WMZ", "cmd" => "0100", "fields" => [
                        { "offset" =>  0,"name" => "Heat_kWh","bitSize" => 15,"factor" => 1,"unit" => "kWh" },
                        { "offset" =>  2,"name" => "Heat_Wh","bitSize" => 15,"factor" => 1,"unit" => "Wh" },
                        { "offset" =>  4,"name" => "Flow_rate","bitSize" => 15,"factor" => 0.01,"unit" => "qm/h" },
                        { "offset" =>  6,"name" => "Power","bitSize" => 8,"factor" => 10,"unit" => "W" },
                        { "offset" =>  8,"name" => "Flow_temperature","bitSize" => 16,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  10,"name" => "Return_temperature","bitSize" => 16,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  12,"name" => "Heat_MWh","bitSize" => 15,"factor" => 1,"unit" => "MWh" },
                        { "offset" =>  14,"name" => "Power2","bitSize" => 8,"factor" => 2560,"unit" => "W" },
                        { "offset" =>  15,"name" => "Glycol","bitSize" => 8,"factor" => 1,"unit" => "" },
                        { "offset" =>  16,"name" => "Pressure","bitSize" => 8,"factor" => 1,"unit" => "bar" },
                        ]},
        "5611" => {"name" => "DeltaTherm_FK", "cmd" => "0100", "fields" => [
                        { "offset" =>  0,"name" => "Temperatur_1","bitSize" => 16,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  2,"name" => "Temperatur_2","bitSize" => 16,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  4,"name" => "Temperatur_3","bitSize" => 16,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  6,"name" => "Temperatur_4","bitSize" => 16,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  8,"name" => "Drehzahl_Reais_1","bitSize" => 8,"factor" => 1,"unit" => "%" },
                        { "offset" =>  9,"name" => "Drehzahl_Reais_2","bitSize" => 8,"factor" => 1,"unit" => "%" },
                        { "offset" =>  10,"name" => "Mischer_Auf","bitSize" => 8,"factor" => 1,"unit" => "%" },
                        { "offset" =>  11,"name" => "Mischer_Zu","bitSize" => 8,"factor" => 1,"unit" => "%" },
                        { "offset" =>  12,"name" => "Datum","bitSize" => 32,"factor" => 1,"unit" => "Tage" },
                        { "offset" =>  16,"name" => "Uhrzeit","bitSize" => 16,"factor" => 1,"unit" => "h" },
                        { "offset" =>  18,"name" => "Systemmeldung","bitSize" => 8,"factor" => 1,"unit" => "m" },
                        ]},



Ob Arno noch mitliest?



Iron-R

Hallo Gemeinde,

@Oldwolf
vielen Dank für Deine Antwort.
Ich habe mich mal am einbinden von Deltasol ES-7411 in die 21_VBUSDEV.pm versucht. Ich habe an die 21_VBUSDEV.pm aus "Antwort 199" die Daten von der 7411 angehangen.
Ein paar Fehlermeldungen konnte ich schon abstellen aber nun komme ich nicht weiter.
Leider kommen Fehler im Log

Zitat2014.10.17 20:56:59 0: Can't read ./FHEM/21_VBUSDEV.pm: No such file or directory
2014.10.17 20:56:59 0: ERROR: Cannot autoload VBUSDEV
2014.10.17 20:56:59 3: vbus: Unknown code aa100011741000010c4d8b00dc003502b822b822b822ea00ea000000000000000000b70401219702000000000000000000005f02c4020a007200, help me!
2014.10.17 20:57:06 1: PERL WARNING: Subroutine VBUSDEV_Initialize redefined at ./FHEM/21_VBUSDEV.pm line 395.
2014.10.17 20:57:06 1: PERL WARNING: Subroutine VBUSDEV_Define redefined at ./FHEM/21_VBUSDEV.pm line 422.
2014.10.17 20:57:06 1: PERL WARNING: Subroutine VBUSDEV_Undefine redefined at ./FHEM/21_VBUSDEV.pm line 453.
2014.10.17 20:57:06 1: PERL WARNING: Subroutine VBUSDEV_Parse redefined at ./FHEM/21_VBUSDEV.pm line 462.
2014.10.17 20:57:06 1: PERL WARNING: Subroutine VBUSDEV_ParsePayload redefined at ./FHEM/21_VBUSDEV.pm line 500.

Die Log-Datei ist angelegt aber leer.
VBULAN ist connected.
Die geänderte Datei habe ich mal angehangen.

Vielleicht kann jemand helfen.
Danke
FHem auf Raspi 512MB-Wheezy; 1wire Bus DS2438, DS18B21, DS2423; Vito200; VBus

Brun

Hallo,

so wie das aussieht hast du ein paar Trennungszeichen zu viel oder zu wenig.

z.B.:

{ "offset" => 18, "name" => "Einstrahlung", "bitSize" => 15,  },

{ "offset" => 20, "name" => "Relaisbyte", "bitSize" => 8,  },

{ "offset" => 26, "name" => "Schema", "bitSize" => 8,  },




und müsste das:

{ "offset" => 20, "bitPos" => 3, "name" => "Relais_4", "bitSize" => 1 },


nicht so aussehen?

{ "offset" => 20, "name" => "Relais_4", "bitSize" => 1, "bitPos" => 3 },

Iron-R

Hallo

Danke für Eure Hilfe die Änderungen habe ich eingefügt. mit mäßigen erfolgt.
Es kommen noch Fehlermeldungen im Log:

Zitat2014.10.19 11:43:20 0: ERROR: Cannot autoload VBUSDEV
2014.10.19 11:43:20 3: vbus: Unknown code aa100011741000010c4d75029a012a02b822b822b8222402d10113000000015a00008c020121a302000000000000000000005100d0020a007200, help me!
2014.10.19 11:43:20 1: PERL WARNING: Subroutine VBUSDEV_Initialize redefined at ./FHEM/21_VBUSDEV.pm line 428.
2014.10.19 11:43:20 1: PERL WARNING: Subroutine VBUSDEV_Define redefined at ./FHEM/21_VBUSDEV.pm line 455.
2014.10.19 11:43:20 1: PERL WARNING: Subroutine VBUSDEV_Undefine redefined at ./FHEM/21_VBUSDEV.pm line 486.
2014.10.19 11:43:20 1: PERL WARNING: Subroutine VBUSDEV_Parse redefined at ./FHEM/21_VBUSDEV.pm line 495.
2014.10.19 11:43:20 1: PERL WARNING: Subroutine VBUSDEV_ParsePayload redefined at ./FHEM/21_VBUSDEV.pm line 533.
2014.10.19 11:43:20 1: reload: Error:Modul 21_VBUSDEV deactivated:
Bareword "t" not allowed while "strict subs" in use at ./FHEM/21_VBUSDEV.pm line 16.

2014.10.19 11:43:20 0: Bareword "t" not allowed while "strict subs" in use at ./FHEM/21_VBUSDEV.pm line 16.

2014.10.19 11:43:20 0: ERROR: Cannot autoload VBUSDEV
2014.10.19 11:43:20 3: vbus: Unknown code aa100011741000010c4d75029a012a02b822b822b8222402d20113000000015a00008c020121a302000000000000000000005100d0020a007200, help me!

Ich habe die gänderte Datei noch mal angehangen.

FHem auf Raspi 512MB-Wheezy; 1wire Bus DS2438, DS18B21, DS2423; Vito200; VBus

Brun

Woher hast du dieses denn


"format" => t


Ich habe deine Definition mal bei mir eingefügt und nachdem ich dieses Feld entfernt habe ging es.

Iron-R

ja klar
Die sollten ja raus, mein Fehler, hat sich beim kopieren des Code für die 7411 aus der xlm Datei in Zeile 409 eingeschlichen.
"format" => t
Danke für Deine Hilfe.

Funktioniert soweit super ohne Fehlermeldung im Logfile  :), nur die Logdatei bleibt leer :(.
Woran kann dies liegen ich verwende folgenden Code für das loggen der Daten aus der 7411, die Logdatei ist angelegt
define FileLog_SOLAR_th FileLog ./log/SOLAR_th-%Y.log SOLAR_th
attr FileLog_SOLAR_th logtype text
attr FileLog_SOLAR_th room Solaranlage th
FHem auf Raspi 512MB-Wheezy; 1wire Bus DS2438, DS18B21, DS2423; Vito200; VBus

oldwolf

#220
Hallo

@Iron-R
Sorry, ich habe es am Wochenende leider nicht geschafft, dein Regler zu implementieren. Aber scheinbar warst du ja auch schon fleißig :)

Hast du diesen Fehler hier schon behoben?
So ist es richtig:
"7411" => {"name" => "DeltaSol_ES", "cmd" => "0100", "fields" => [
Anstelle von:
"7411" => {"name" => "DeltaSol_ES", "cmd" => 0100, "fields" => [

Dann sollte es funktionieren.

@Brun
Vielleicht sollte man wirklich mal ein neues VBUS-Thema anlegen, in dem nur die wichtigsten Fakten hinterlegt werden und die aktuellen Dateien drin sind.
Deine Geräte habe ich mal in die bestehende Datei eingepflegt.

Anbei also die aktuellste Version der VBUSDEV.pm mit den folgenden Geräten:

    7751 - DiemasolC
    7321 - Vitosolic200
    7721 - DeltaSol E (Regler)
    7722 - DeltaSol E (Wmz)
    4212 - DeltaSolC
    7331 - SLR
    427B - DeltaSol_BS_2009
    7821 - CosmoMulti (Regler)
    7822 - CosmoMulti (WMZ)
    7421 - DeltaSol BX
    7E11 - DeltaSol MX Regler
    7E12 - DeltaSol MX Module
    7E21 - DeltaSol MX Heizkreis
    7E31 - DeltaSol MX WMZ
    7411 - DeltaSol ES  [danke an Iron-R]
    4010 - WMZ  [danke an Brun]
    5611 - DeltaTherm_FK  [danke an Brun]

Viele Grüße
Robin

EDIT: Fehler (siehe nachfolgender Post) in der VBUSDEV behoben.
   

Iron-R

Hallo Oldwolf,

noch zwei Anmerkungen:

in Deiner geposteten 21_VBUSDEV.pm ist noch im Code zur 7411 das "format" => t enthalten.

Nach dem mein Loggen nun funktioniert ist mir aufgefallen das Zeilen im Code zur 7411 fehlen, sind beim kopieren aus der xlm Datei abhanden gekommen:

              { "offset" => 39, "name" => "Wärmemenge_1","bitSize" => 16,"factor" => 1,"unit" => "Wh" },
                        { "offset" => 40, "name" => "Wärmemenge_2","bitSize" => 16,"factor" => 1,"unit" => "Wh" },
                        { "offset" => 42, "name" => "Wärmemenge_3","bitSize" => 16,"factor" => 1000,"unit" => "Wh" },
                        { "offset" => 44, "name" => "Wärmemenge_4","bitSize" => 16,"factor" => 1000000,"unit" => "Wh" },

müsste vielleicht noch ergänzt werden. Können die Werte auch in kWh und MWh umgerechnet werden?

Nachdem nun die Daten vom 7411 geloggt werden war ich heute von der Größe der log-Datei von 119MB in 24 Std. überrascht.
Da auch viele Werte von Sensoren geloggt werden die nicht angeschlossen sind, kann man die in der 21_VBUSDEV.pm auskommentieren um die Datenflut einzudämmen.
Wie hoch sollte das loggintervall sein?

Viele Grüße 
FHem auf Raspi 512MB-Wheezy; 1wire Bus DS2438, DS18B21, DS2423; Vito200; VBus

oldwolf

Hallo,

danke für den Hinweis. Das werde ich morgen dann ändern.

Du musst das Attribut "event-on-change-reading" wegnehmen und stattdessen "event-min-interval" setzen. Ich habe es bei mir auf 3 min oder 180sec gesetzt. Da hält sich die Datenflut in Grenzen. Prinzipiell gilt: Log-Eintrag nur so oft wie nötig erzeugen, wenn du also keine sekundengenaue Auswertung brauchst, reichen minutengenaue Einträge.

Viele Grüße
Robin

Iron-R

#223
Hallo,

"event-min-interval"  300 hatte ich schon eingestellt aber ohne erfolgt.
Wird das bei VBUSLAN oder VBUSDEV eingestellt.

Viele Grüße

Ich bekomme die Datenflut einfach nicht eingedämmt. Woran kann das noch liegen.
# Resol VBUS/LAN Solaranlage
define vbus VBUSLAN 192.xxx.x.xxx:7053
define SOLAR_th VBUSDEV 7411
attr SOLAR_th IODev vbus
attr SOLAR_th event-min-interval state:300
attr SOLAR_th event-on-change-reading state
attr SOLAR_th event-on-update-reading .*
attr SOLAR_th model DeltaSol_ES
attr SOLAR_th room Solaranlage th
define FileLog_SOLAR_th FileLog ./log/SOLAR_th-%Y.log SOLAR_th:.*
attr FileLog_SOLAR_th logtype text
attr FileLog_SOLAR_th room Solaranlage th

FHem auf Raspi 512MB-Wheezy; 1wire Bus DS2438, DS18B21, DS2423; Vito200; VBus

oldwolf

Hallo Iron-R

mach die beiden Zeilen, die ich auskommentiert habe, einfach mal raus:
# Resol VBUS/LAN Solaranlage
define vbus VBUSLAN 192.xxx.x.xxx:7053
define SOLAR_th VBUSDEV 7411
attr SOLAR_th IODev vbus
attr SOLAR_th event-min-interval state:300
# attr SOLAR_th event-on-change-reading state
# attr SOLAR_th event-on-update-reading .*
attr SOLAR_th model DeltaSol_ES
attr SOLAR_th room Solaranlage th
define FileLog_SOLAR_th FileLog ./log/SOLAR_th-%Y.log SOLAR_th:.*
attr FileLog_SOLAR_th logtype text
attr FileLog_SOLAR_th room Solaranlage th


Die sorgen dafür, dass jedes mal, wenn sich ein Wert ändert, der komplette Block aktualisiert wird.
Damit sollte es deutlich weniger Daten geben.

Grüße
Robin