VBus in fhem

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

Vorheriges Thema - Nächstes Thema

markus25

Hallo Robin,
hab die VBUSDEV und die FHEM.cfg nach deinen Tipps abgeändert und Du wirst es nicht glauben, ich bekomm jetzt werte ins Logfile geschrieben.
Jääääääää :D :D :D :D

Nochmal vielen Dank für deine Hilfe, jetzt hoff ich noch das ich keine Ausreißer bekomme.

VG
Markus
FHEM auf Raspi3 HMLAN und Cuno, Resol per VBus und Jeelink

mahlzeit24/7

Hallo Zusammen,

Arno, Robin, klasse was ihr da gebaut habt !

Ich hab nun den ganzen Sommer über ohne vbus ganz gut überstanden.

Da ich aber nur einen Wasserführenden Ofen neben der Solaranlage habe, muss ich jetzt langsam wieder überwachen ;-)

Was mir auffällt:

Mein Regler ist ein Deltasol ES code 7411

Der ist nicht in der VBUSDEV, in keiner ....ok.

Was hab ich nun gemacht?

Die letzte vbusdev aus diesem fred und Arno's VBUSLAN.pm

Danach mit define vbus VBUSLAN 192.168.2.8:7053 angelegt.

Dann passierte erstmal nichts.

Ich hab dann die 21_VBUSDEV.pm angepasst, die Reglerwerte des RESOLE kopiert nach ResolES und den Code auf 7411 geändert, der Rest würde sich ergeben.....

reload 21_VBUSDEV.pm und autocreate legte los

define VBUSDEV_7411 VBUSDEV 7411
attr VBUSDEV_7411 IODev vbus
attr VBUSDEV_7411 event-min-interval .*:120
attr VBUSDEV_7411 event-on-change-reading .*
attr VBUSDEV_7411 room VBUSDEV
define FileLog_VBUSDEV_7411 FileLog ./log/VBUSDEV_7411-%Y.log VBUSDEV_7411
attr FileLog_VBUSDEV_7411 logtype text
attr FileLog_VBUSDEV_7411 room VBUSDEV

in das log wird aber nichts geschrieben, stattdessen immer die gleiche Meldung ins fhem log:

2014.09.20 19:48:52 5: vbus dispatch aa100011741000010c4dce00fd01f701b8221a024e0288fcb8220000000002001e0074041600d41eeb11b109fe07e71a17040000000000007200

aa10001174sehe ich ja noch als bestätigung, dass mein Code stimmt, frage mich allerdings, wo da der Hase im Pfeffer liegt, dass das nciht decodiert wird?

Hat jemand ne idee?

VG
Frank

mahlzeit24/7

update:

habe ein update von fhem gemacht, keine relevanten dateien dabei gewesen, jedoch nach dem restart kommen auf einmal die werte rein.

Vorher hatte ich bereits 2-3 mal restartet, ohne erfolg, jetzt kuck ich nochmal nach den bits damit die stimmen

cheers

Frank

jaydax

Hallo, ich habe eine Sonnenkraft Anlage und als Regler einen SLM50HE. Dort möchte ich mit dem vbus/lan Adapter die Werte auslesen und eine eigene Auswertung erstellen. Gibt es einen einfachen Weg mit einer http oder telnet Abfrage an die Momentanwerte zu gelangen? Mit dem upnp Port bekomme ich nur eine xml die keine Werte enthält und mit telnet auf Port 7053 bekomme ich:
+HELLO
      -ERROR: Sacre bleu. Unknown command


jaydax

#184
Hallo, so weit ich das nun ergründen konnte gibt es keine einfache Lösung, um an die Daten zu kommen. Also hab ich FHEM konfiguriert und die Config angepasst und die letzten 20_VBUSLAN.pm und die 21_VBUSDEV.pm kopiert und gestartet. Nach etwas Probieren lief es dann auch. In der VBUSDEV habe ich nur meine 3 Geräte 7160, 7161 & 7162 die ich auslesen will. In die Config habe ich nur geschrieben "define vbus VBUSLAN 192.168.xxx.xxx:7053". Die weiteren notwendigen Zeilen wurden automatisch angelegt inkl. der Logfiles. Soweit haben die vielen Ratschläge hier in diesem Post sehr geholfen.
Nun aber mein Problem: Es kommen keine Werte an. Weder im fhem.log noch in der jeweiligen Log der Geräte. In der fhem.log erscheinen lediglich die Zeilen:

2014.09.22 21:39:12 5: vbus dispatch aa60712265100001041273016f00b822b822f6ffb82200000000
2014.09.22 21:39:12 5: vbus dispatch aa1000627110000103086e0100001000000073016b00
2014.09.22 21:39:13 5: vbus dispatch aa150060711000010a7e02010000610051011802b8220108000000000000020a00006100180200000000010b000000000000
2014.09.22 21:39:14 5: vbus dispatch aa10006071100001137a610051011802b822b7013602b822b822460500000000000000000000000000000008000010017f0101031705000000000000000000000000000000008c01000100000000b502350100000000
2014.09.22 21:39:14 5: vbus dispatch aa216560711000020a0c64000000000000000000000000000000640400000014000000000000000000000000000000000000
2014.09.22 21:39:14 5: vbus dispatch aa6071216510000104138b016b005502b822305bb82200000000
2014.09.22 21:39:15 5: vbus dispatch aa1000617110000103096e010414100000008b016b00
2014.09.22 21:39:15 5: vbus dispatch aa226560711000020a0b64000000000000000000000000000000000000000000000000000000000000000000000000000000
2014.09.22 21:39:15 5: vbus dispatch aa60712265100001041273016f00b822b822f6ffb82200000000
2014.09.22 21:39:15 5: vbus dispatch aa1000627110000103086e0100001000000073016b00
2014.09.22 21:39:16 5: vbus dispatch aa150060711000010a7e02010000610051011802b8220108000000000000020a00006100180200000000010b000000000000


Hat jemand eine Idee woran es liegen kann? Sind diese Zeilen normal?

EDIT: hab jetzt mal nur mit einem Geräte versucht. In der CFG wird es korrekt eingetragen, aber dann passiert nichts weiter. Meine 3 Dateien hab ich angehängt. Eigentlich habe ich sie so gelassen wie ich sie hier im Thread gefunden habe. Nur halt die VBUSDEV angepasst.

EDIT2: es geht nun, hatte in der VBUSDEV einen Fehler ""7160" => {"name" => "SKS3HE", "cmd" => 0100, "fields" => [" ... die 0100 muss in Anführungszeichen stehen.

jaydax

Ich werde den FHEM Server auf einem Raspberry PI betreiben und möchte es eigentlich nur nutzen, um die Daten zu lesen und in eine SQL Datenbank auf einem anderen Server zu schreiben.
Meine Idee dazu wäre:
1. FHEM Server starten
2. Log mit PHP auslesen und in SQL schreiben
3. FHEM Server stoppen
4. Log löschen
5. nach 3 Minuten wieder bei 1. beginnen

Ich möchte in der SQL DB die Werte zu einem bestimmten Zeitpunkt haben und doppelte Einträge vermeiden. Und halt die Logdatei so klein wie möglich halten.
Gibt es von FHEM eine Logrotation? Oder kann ich den FHEM Befehl event-min-interval .*:180 erweitern, dass das Log jedes mal überschrieben wird?

mahlzeit24/7

mein VBUS Lan hat sich heute verabschiedet.

Nach etlichen Verbindungsproblemen habe ich versucht ihn zu flashen - dabei ist beim Schreiben was ausgefallen - jetzt ist er hin.

Ich suche gerade nach alternativen - der vbus lan ist doch ziemlich pricy für das was er kann.

In den google groups dazu hab ich nun über (zufälligerweise)funktionierende rs485 konverter gelesen, das werd ich mir mal ansehen.

Gibts irgendwo eine einführung in arduino technik?

mahlzeit24/7

Ich nochmal,

ich hab nen RS485 <-> Serial Adapter noch gefunden - hatte ich mir mal zugelegt und in die Bastelkiste gepackt:

http://www.ebay.de/itm/USB-RS485-Converter-Konverter-Adapter-Seriell-PC-Mac-Linux-Raspberry-Pi-/111326580742?pt=DE_Computing_Parallel_Seriell_PS_2&hash=item19eb94d006

Das Ding tut's einwandfrei! Ich habs mal testweise an mein windoof system gekelmmt und das Resol Servicecenter aufgerufen, da sind alle Werte plausibel.

Ich würde die Loggerei gerne in fhem haben, wegen dem Notify etc - nur das Verbindungsmodul ist ja für VBUS/LAN - kann mich jemand auf die richtige Spur bringen, wie ich das device da rein bringen kann?

Die Linuxbox, wo es dran soll steht im Keller - da wird es auch über /dev/ttyUSB0 eingebunden.

Der FHEM Raspberry steht im Erdgeschoss - lan verbindung steht.

Erstmal wäre mir glaub ich geholfen, wenn "unten" die rawlogs erzeugt werden, die könnte ich per nfs von oben direkt ziehen.

Verwirrte grüße ob das alles Sinn macht?!?

Frank


mahlzeit24/7

Ich hab noch einen zweiten Wandler parallel angeschlossen - damit sind die Daten nun im Service Center unter windows verfügbar und gleichzeitig kann ich mit der Linuxkiste versuchen den Datenstrom in den griff zu bekommen.

ich hab mir ein altes Perlscript geladen, welches aber nur Käsetemperaturen ausloggt alle Temps sind in den 1000er Bereichen....mal sehen, was damit geht.

Also das find ich echt ne tolle NAchricht für alle VBUS logger, für nen Bruchteil jedes erhältlichen Resol loggers können die Daten so (gut, nur usb) ausgelesen werden, Parametrisierung geht im Übrigen auch!

Frank


oldwolf

Hallo zusammen,

@Frank:
Zunächst freut mich das positive Feedback, das muss ich jedoch komplett an Arno weitergeben. Ich mach hier nur den Support und füge ein paar neue Regler ein...

Du hast dir ja ganz schön was vorgenommen! Kling aber alles sehr interessant und v.a. preiswert.
Habe leider überhaupt keine Ahnung wie man das machen könnte.
Welche Infos kommen denn momentan von "unten" bzw. was macht das Perl-Skript? Vielleicht liegt der Fehler ja nur bei der Umrechnung der Temperaturen?

@Jaydax:
Ich glaube, du hast was ähnliches vor wie ich ;)
- Warum willst du den FHEM-Server permanent neu starten und wieder beenden? Lass den doch einfach laufen?!
- Ob FHEM den Log permanent überschreiben kann, weiß ich nicht. Aber ich habe es z.B. über einen Cron-Job und ein Skript geregelt.

Ich lasse mir die Daten per FTP ins Internet laden, um mir dort die aktuellen Werte, eine Statistik etc. anzuzeigen. Dazu habe ich auch eine mySQL-Datenbank laufen. Problem war, dass die Log-Datei recht schnell sehr groß wurde und der Upload immer langsamer, bis irgendwann nichts mehr ging. Jetzt mache ich es so:
- FHEM loggt in die VBUS.log
- über CronJob aufgerufenes Skript macht eine neue Datei (überschreibt die bestehende) VBUS_upload.log, in der nur die Einträge seit dem letzten Upload drin stehen
- VBUS_upload.log wird vom selben Skript hochgeladen.

Vielleicht hilft dir das weiter. Den FHEM-Server permanent zu starten und zu stoppen finde ich nur begrenzt sinnvoll.

Viele Grüße
Robin

avg123-de

Hallo,

bei mir klappt der VBus jetzt eigentlich ganz gut mit FHEM.
Jedoch kommen bei mir seit heute morgen keine Werte mehr an, was ich mir nicht erklären kann, da ich keine Update (FHEM) durchgeführt und auch sonst nichts verändert habe.
Vor ca. zwei Wochen hatte ich das Problem schon einmal, jedoch war es am darauffolgenden Tag wieder so verschwunden, wie es gekommen war.
Auch ein Wiederherstellung auf Gestern oder Vorgestern bringt bei mir keinen Erfolg.

viele Grüße
Alexander
FHEM auf virtualisiertem Debian in Hyper-V auf Dell Poweredge T110 II mit Windows Server 2012, 1x HM-LAN, verschiedene HomeMatic-Komponenten, Intertechno ITR-1500, Arduino Uno Ethernet mit RF-Modul, DeltaSol BX via VBus, Fritz!Box + Fritz!Fon, SmartVisu via Fronthem, Doorpi

hg

#191
Hallo,

ich bin absoluter FHEM Newbie aber durch dieses Forum habe ich mein DeltaSol BX (7421) über VBusLan mit FEHM erfolgreich verbinden können. Vielen Dank dafür.

Jetzt zu mein Problem:
Obwohl ich nichts verändert habe bekomme ich seit heute genau wie bei Alexander keine Daten mehr ins Logfile geschrieben.
Bis gestern 25.09.14 23:59 war noch alles perfekt, aber genau seit 00:00 geht es nicht mehr.
Wer hat dazu eine Idee ?

viele Grüße
Hans-Georg

Update:
Seit den 27.09.14 00:00 werden wieder Daten ins Logfile geschrieben. 

avg123-de

Hallo,

seit heute (0:00) habe ich jetzt wieder meine Werte, als ob nichts gewesen wäre.
Habe keine Update durchgeführt und auch sonst nichts gestern geändert, es hat halt auf einmal wieder funktioniert, so wie vor ca. zwei Wochen schon einmal.

viele Grüße
Alexander
FHEM auf virtualisiertem Debian in Hyper-V auf Dell Poweredge T110 II mit Windows Server 2012, 1x HM-LAN, verschiedene HomeMatic-Komponenten, Intertechno ITR-1500, Arduino Uno Ethernet mit RF-Modul, DeltaSol BX via VBus, Fritz!Box + Fritz!Fon, SmartVisu via Fronthem, Doorpi

oldwolf

Hallo ihr beiden,

dieses Problem hatte ich auch am Anfang. Nach einer kleinen Änderung der VBUS.pm  ging aber alles.

Beim nächsten Ausfall einfach das "attr global verbose" auf 5 und warten bis im Log Nachrichten auftauchen

Wrong message length: ABC != XYZ

Und mit dieser Log-Nachricht könnt ihr dann die unten aufgeführten Änderungen vornehmen (für XYZ natürlich die Werte aus dem Log eintragen):

Zitat von: oldwolf am 23 August 2014, 19:14:46
Hier übrigens meine Anpassungen der 20_VBUSLAN.pm. Seither funktioniert das Modul tadellos (egal an welchem Datum) :D
In der Funktion VBUSLAN_Read habe ich an den folgenden Zeilen (Zeile 131 ff.)

if ($len != length($msg)) {
   Log 4,"$name: Wrong message length: $len != ".length($msg);
} else {
   ...

... diese Änderungen vorgenommen:

if ($len != length($msg) && length($msg) != XYZ) {
    Log 4,"$name: Wrong message length: $len != ".length($msg);
} else {
   if(length($msg) == XYZ) {
      $msg = $msg."a";
   }
   ...


Wenn ihr mehrere Devices habt und auch verschiedene Nachrichten im Log auftauchen, bei denen die Zahl XYZ unterschiedlich ist, müsste man den obigen Code etwas anpassen. Aber vielleicht geht es zunächst ja auch einfach so.

Viele Grüße
Robin

mahlzeit24/7

#194
Hi Robin,

vielen Dank für Deine Hilfe!

Habs jetzt folgendermassen hinbekommen:

Einer der Adapter hängt am WH2003 Serverchen, worauf die RSC Software läuft - ist(war) für den  Übergang und funktioniert folgendermassen:

Dort wird ein Logfile auf ein NFS Share geschrieben - alle 15 min. dieses logfile kann ich in fhem einlesen ;-)

Der zweite Adapter hängt ebenfalls per USB an meinem Debianserver und wird per serial2net ins Lan geschleust.

Hier funktioniert die Config wieder einwandfrei, als wäre es ein vbus lan adapter, einfach die IP und den Port umgebogen und restart.

Die Lösung hat folgenden Charme: normalerweise benötige ich nur das monitoring, ca 364 Tage pro Jahr, einmal aber optimiere ich die Solarthermieanlage oder benötige handbetrieb, wegen was auch immer. Jetzt muss ncihts mehr umgestöpselt werden, parametrisierung geht vom WH2003 aus .

;-))))

Ich glaube, keine oder kaum eine andere Lösung ist so flexibel wie FHEM!

Gut, kann manchmal was tricky sein, aber dank der Hilfe hier im Forum gehts noch immer!

Cheers
Frank