VBus in fhem

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

Vorheriges Thema - Nächstes Thema

matrix_rs

Hallo Brun,

bei mir zeigt sich genau das Bild wie bei Iron.
Sobald eine Temperatur (Außenfühler, Kollektorfühler) ins Minus geht, kommen Werte über 6000 raus.
hab mir das mal ein bisschen genauer angeschaut und soweit ich das sagen kann, rechnet er wohl die Werte falsch um.
Der erste negative Wert im Log ist 6553.5 wenn ich 65535 in Hex umwandle kommt FFFF raus. Je tiefer die Temperatur fällt, desto kleiner wird der 6000er Wert. Was für mich danach aussieht als würde er in die falsche Richtung zählen. Oder man muss von dem 6000er Wert "einfach" 6553,5 abziehen, dann bekommt man auch eine Wert im Minus Bereich.
Soweit das was mit aufgefallen ist, ob ich da auf der Richtigen Spur bin kann ich leider nicht sagen.

Gruß
Robert

avg123-de

Hallo,

bei mir ist es der DeltaSol BX (7421), bei dem ich die Ausreißer (auch >6000°C) habe.

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

Brun

Ich habe mir mal die Definitionen angeschaut.
Von den Temperaturen wurden immer nur 15Bit benutzt obwohl es 16Bit Werte sind. Irgendwo war es auch mal mit 15Bit dokumentiert.

Ich habe jetzt bei den beiden (7411, 7421)mal die Definitionen auf 16Bit erweitert.
Könnt ihr es bitte mal testen und mir Rückmeldung geben.


Gruß Brun


Iron-R

Hallo Brun,

Danke für Deine Hilfe, habe die Änderung eingepflegt bei den nächsten minus Temp. melde ich mich.

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

lushifushi

Hallo,

ich verfolge diesen Thread schon länger und wollte mich nun auch einmal an meiner Resol DeltasolM versuchen. Den LAN Adapter und das Resol Service center habe ich schon länger in Betrieb. Die Hardware der DeltasolM ist die ,,Originalversion" der Vitosolic200. Ich habe die beiden xml Files von Resol verglichen, und auch diese sind gleich. Also einfach mal in der vbusdev die vitosolic200 kopiert, die Adresse und Name der DeltasolM eingetragen und ... es funktioniert NICHT.   :(
vbuslan verbindet sich, vbusdev erzeugt aber keine autocreate Einträge im configfile und sekündlich (also mit jedem Paket von der Steuereung) laufen die Fehlermeldungen ins logfile, siehe unten. Vielleicht hat jemand einen heißen Tip.

VG,
Karsten


2014.12.12 21:40:02 5: vbus dispatch aa10001173100001124872004b03f3003a01b822b822b8228001ca00c8004f036903000000004509050000000000700000000f03000000000000000000000000000000000d000000000001190b1c01000000

2014.12.12 21:40:02 5: Loading ./FHEM/21_VBUSDEV.pm
2014.12.12 21:40:02 1: reload: Error:Modul 21_VBUSDEV deactivated:
Too many arguments for main::AssignIoPort at ./FHEM/21_VBUSDEV.pm line 508, near "$iodev) "

2014.12.12 21:40:02 0: Too many arguments for main::AssignIoPort at ./FHEM/21_VBUSDEV.pm line 508, near "$iodev) "

2014.12.12 21:40:02 0: ERROR: Cannot autoload VBUSDEV
2014.12.12 21:40:02 5: Triggering vbus (1 changes)
2014.12.12 21:40:02 5: Notify loop for vbus UNKNOWNCODE aa10001173100001124872004b03f3003a01b822b822b8228001ca00c8004f036903000000004509050000000000700000000f03000000000000000000000000000000000d000000000001190b1c01000000

2014.12.12 21:40:02 4: eventTypes: VBUSLAN vbus UNKNOWNCODE aa10001173100001124872004b03f3003a01b822b822b8228001ca00c8004f036903000000004509050000000000700000000f03000000000000000000000000000000000d000000000001190b1c01000000 -> UNKNOWNCODE aa10001173100001124872004b03f3003a01b822b822b8228001ca00c8004f036903000000004509050000000000700000000f03000000000000000000000000000000000d000000000001190b1c01000000

2014.12.12 21:40:02 3: vbus: Unknown code aa10001173100001124872004b03f3003a01b822b822b8228001ca00c8004f036903000000004509050000000000700000000f03000000000000000000000000000000000d000000000001190b1c01000000, help me!
20

avg123-de

#245
Hallo Brun,

habe gerade die verbesserte 21_VBUSDEV.pm bei mir eingepflegt, jedoch stimmen bei mir jetzt die normalen Temperaturen nicht mehr (>200°C).

Update: Die Werte stimmen nur alle zwei Minuten. Dass heißt, die eine Minute habe ich ca. 9°C und eine Minute später wieder >200°C.

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

yellowpinky

Hallo;

..könnte mir vorstellen, dass das 16. Bit das Vorzeichen-Bit ist ?!

Brun

Hallo,

das 16.Bit ist nicht das Vorzeichen.
Das Problem scheint zu sein, dass Perl die Variable als Integer interpretiert es aber in Wirklichkeit ein unsigned Integer ist. Bis zu einen Wert von 32768 (oder so) ähneln sich beide. Doch der unsigned Integer springt dann zu -32768 über.

Ich habe mal versucht das ab zu fangen und zu korrigieren.


Gruß Brun

Iron-R

Hallo Zusammen,
also bei dem Gerät 7411 sieht es mit der Änderung in
bitSize" => 16
gut aus nur die minus Grade konnten noch nicht getestet werden.

Grüße
Iron

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

Brun

Hallo Iron,

in deiner Graphik sehe ich gerade, dass deine Pumpe auf 30% laufen kann. Was hast du denn für eine Pumpe?
Testest du bitte mit der Datei von meinen letzten Beitrag. Da ist zwar nur die 15Bit Werte drin aber die Umwandlung auf die Minuswerte.


Gruß Brun

avg123-de

Hallo Brun,

hatte gerade die Datei aus deinem letzten Beitrag getestet, jedoch bringt es mir nur die Änderung, dass jetzt dauerhaft die falschen Werte (204,9°C) angezeigt werden.

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

Brun

Hallo Alexander,

ist das immer nur ein Sensor der aus der Reihe tanzt? Welcher?
Du kannst ja mal selber die bitSize auf 16 stellen. Was passiert dann?

Wenn ich es irgendwann schaffe versuche ich das Debuging mal zu erweitern.


Gruß Brun

oliverk


Ich habe mir das man angeschaut. Ob 15 oder 16 Bit macht keinen Unterschied. Der 16-Bit Wert zählt einfach Rückwärts bis 0 was ja 0°C entspricht und geht dann auf ff ff was -0,1°C entspricht. Dies ist in der vbus Doku auch nicht extra angegeben. Ich habe in den Spezifikationen mal nach einer Range gesucht, aber nichts gefunden. So kann man einen kleinen Patch einbauen, der Werte > 6000 als negative Werte darstellt. Dann kann man auch noch einen Brand der Kollektoren sauber verfolgen ;-)

Leider komme ich grad nicht auf mein System. Werde das heute Abend einmal einbauen und hoffen, dass es kälter wird :-)

Oliver

Fhem: 5.7 auf RaspPi / Fhem: 5.7 auf Cubie
ca. 80 net4home Buskomponenten
zum Spielen diverse FS20, HomeMatic, EnOcean, hue Geräte, Fritz!Box 7490, Fritz!Dect 200, netatmo, eve

oliverk

Perl ist ja schon ein wenig seltsam. Aber auch ich werde es verstehen.  Das oberste Bit ist natürlich das Vorzeichen. Man muss nur genau schauen.

Zeile 607:
$val = hex($val);

sollte ersetzt werden mit:
$val = unpack('s', pack('S', hex($val)));

Dann wird das auch als signed int erkannt. Zumindest wenn ich mich nicht ganz täusche :-;
Ich habe das nur mal auf die schnelle geändert und muss noch mal prüfen, ob das nicht andere Auswirkungen hat. Bei meinem Model sind die Temperaturen ja 15 Bit. (SKSC2 von Sonnenkraft - Modell 4211)
Da muss meiner Meinung nach noch eine Abfrage rein.


Oliver




Fhem: 5.7 auf RaspPi / Fhem: 5.7 auf Cubie
ca. 80 net4home Buskomponenten
zum Spielen diverse FS20, HomeMatic, EnOcean, hue Geräte, Fritz!Box 7490, Fritz!Dect 200, netatmo, eve

Iron-R

Hallo Brun,

ich teste Deine Datei aus dem Post 247 wird aber erst am Mittwoch.

Als Pumpe habe ich eine HP63 von WATTS drin.

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