eBus Schaltung in Betrieb nehmen

Begonnen von Reinhart, 23 Dezember 2015, 15:19:45

Vorheriges Thema - Nächstes Thema

Cruiser79

Zitat von: harry66 am 13 Februar 2016, 08:26:39
Ich hatte auch noch gelesen das evt die stromversorgung des pi schuld sein könnte, evt bringt ein usb hub besserung.

Zitat von: Reinhart am 13 Februar 2016, 09:55:09
Ich benutze den gleichen RS232 Wandler wie in Cruiser79 oben gepostet hat.

meine (genau die betroffene) Kernelversion:
pi@raspberry2 ~ $ uname -a
Linux raspberry2 3.18.7+ #755 PREEMPT Thu Feb 12 17:14:31 GMT 2015 armv6l GNU/Linux


Raspberry ist ein alter B+ auf dem nur eBusd läuft, sonst nichts. Kein Fhem, keine zusätzlichen Adapter und kein Wlan.

Der Adapter wird als Future Technology erkannt:
pi@raspberry2 ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC


LG

Zitat von: amunra am 13 Februar 2016, 09:26:28
Ein Kernel downgrade hat hier geholfen.

#version vorher: Linux version 4.1.6+
#version nachher: Linux version 3.12.36+

Viele Grüße
Arthur


Ist natürlich schon komisch. Beim einem klappt es nur mit Downgrad, beim anderen schon mit dem Runterschalten der USB Geschwindigkeit und beim dritten mit einem USB Hub. Da scheint ja irgendwas sehr sensibel zu sein  :)

Ich werde mal die Tipps (so es mir möglich ist) überprüfen.

Bei mir hängt des USB TTL an einem Raspberry Pi2 mit gleichzeitig installierten FHEM und einem Node-Skript für eine eigene Weboberfläche. Könnte natürlich schon das Problem sein, das "zu viel" auf dem Raspi läuft.
Somit werde ich mal die Möglichkeit mit einem zweiten Raspi nur für ebusd überprüfen.
Dann hätten wir noch Downgrade, meine momentane Version lautet 3.18.11+
Alternativ einen aktiven USB Hub um die Stromversorgung zu erhöhen.
Oder die USB Schnittstelle runterschalten, was bei mir schon nicht zur Lösung geführt hat.

Wenn mein Adapter sogar bei Reinhart einwandfrei läuft, sehe ich aber noch Hoffnung.  ;)

Habt ihr denn den Adapter direkt am Raspberry hängen? Das wäre noch eine Idee von mir, da momentan noch ein USB Kabel dazwischen hängt.

Gruß,
Tim
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

harry66

Zitat von: Cruiser79 am 13 Februar 2016, 22:43:48
Ist natürlich schon komisch. Beim einem klappt es nur mit Downgrad, beim anderen schon mit dem Runterschalten der USB Geschwindigkeit und beim dritten mit einem USB Hub. Da scheint ja irgendwas sehr sensibel zu sein  :)

Ich werde mal die Tipps (so es mir möglich ist) überprüfen.

Bei mir hängt des USB TTL an einem Raspberry Pi2 mit gleichzeitig installierten FHEM und einem Node-Skript für eine eigene Weboberfläche. Könnte natürlich schon das Problem sein, das "zu viel" auf dem Raspi läuft.
Somit werde ich mal die Möglichkeit mit einem zweiten Raspi nur für ebusd überprüfen.
Dann hätten wir noch Downgrade, meine momentane Version lautet 3.18.11+
Alternativ einen aktiven USB Hub um die Stromversorgung zu erhöhen.
Oder die USB Schnittstelle runterschalten, was bei mir schon nicht zur Lösung geführt hat.

Wenn mein Adapter sogar bei Reinhart einwandfrei läuft, sehe ich aber noch Hoffnung.  ;)

Habt ihr denn den Adapter direkt am Raspberry hängen? Das wäre noch eine Idee von mir, da momentan noch ein USB Kabel dazwischen hängt.

Gruß,
Tim
Bei mir sieht es so aus, ebus platine mit 1,5mm2 an der busklemme, controller mit steckbrücken angeschlossen und mit ca 75cm usbkabel hinter der 620 nach aussen gelegt

Gesendet von meinem PE-TL10 mit Tapatalk

BananaPI, RPI, nanoCUL433, RCS 1000 N Comfort, Dect200, Powerline546E, MAX!Cube, 7xMAX! HT's,3xMAX!FK HMLAN, HM-LC-Bl1PBU-FM, HM-LC-Sw4-Ba-PCB Relay Karte,  LW12, Sqeezelite, TabletUI=Kindel 8" FireHD+Handy,AmazonEcho

ansi7k3

läuft auf Jessie, letztes Update, Pi 2. Ebus aus Git.

pi@pi:~ $ /opt/bin/ebusctl info
version: ebusd 2.0.a91d8ff
signal: acquired
symbol rate: 37
masters: 3
messages: 425
address 03: master #3
address 08: slave #3, scanned "MF=Vaillant;ID=BAI00;SW=0507;HW=7401", loaded "vaillant/08.bai.HW7401.csv"
address 10: master #6
address 15: slave #6, scanned "MF=Vaillant;ID=43000;SW=0136;HW=2002", loaded "vaillant/15.430.csv"


pi@pi:~ $ lsusb
Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


pi@pi:~ $ uname -a
Linux pi 4.1.17-v7+ #838 SMP Tue Feb 9 13:15:09 GMT 2016 armv7l GNU/Linux

Reinhart

@matensn

also wenn die Installation jetzt mit dem Installer funktioniert hat, dann kannst du jeden Wert abfragen der bei deiner Find Auflistung vorhanden ist (also in den Files bai00 und 470).

zB die VorlaufSoll Temperatur:

define VorlaufSoll ECMDDevice bai00.class
attr VorlaufSoll IODev EBUS
attr VorlaufSoll group Vaillant
attr VorlaufSoll icon sani_supply_temp
attr VorlaufSoll room Heizung,Vaillant

in der fhem.cfg den Define anlegen.


define EBUS.Timer at +*00:15:00 get Aussentemp Aussentemp;;get Vorlauf Vorlauf;;get Status status;;get Ruecklauf Ruecklauf;;get Fanspeed Fanspeed;;get PumpeWatt PumpeWatt;;get HKurve HKurve;;get VorlaufSoll VorlaufSoll
dann dort wo der Timer angelegt wurde den Aufruf erweitern (;;get VorlaufSoll VorlaufSoll)

get VorlaufSoll cmd {"r -f FlowTempDesired temp\n"}
get VorlaufSoll expect "\d+\.\d+\n\n"
get VorlaufSoll postproc { sprintf("%5.1f",$_) }

und schließlich in der bai01.cfg das ECMD Kommando der Abfrage definieren.

So zieht sich das durch alle Datenpunkte. Bevor ich sowas fix in fhem einbaue, teste ich die Abfrage vorher in der Console mit:
pi@raspberry2 ~ $ ebusctl r -f FlowTempDesired temp
48.00


LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

mattensn

@Reinhart

demnach kann ich nur die Daten abfragen die bei der Auflistung mit "ebusctl find" jetzt schon Werte enthalten?

Was ist mit den ganzen anderen Werten, dort steht ja immer "no Data stored". Oder muss ich da was an den CSV Dateien verändern?

Meinst du mit "(also in den Files bai00 und 470)" die csv Files ?

VG Matthias


Reinhart

#470
"no Data stored" bedeutet ja nur das nichts im Buffer ist weil ja dieser noch nie abgefragt wurde!
Alle Datenpunkte die da auftauchen kannst auch abfragen bzw. setzen!

Einfach abfragen, versuche es zunächst in der Konsole!

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#471
Beispiel ValveMode:

bai Testbyte = no data stored
bai TimerInputHc = no data stored
bai ValveMode = no data stored
bai ValveStarts = no data stored
bai VortexFlowSensor = no data stored

ebusctl find bringt "no data stored"

pi@raspberry2 ~ $ ebusctl r -f Valvemode
0

nun wird ValveMode abgefragt

bai Testbyte = no data stored
bai TimerInputHc = no data stored
bai ValveMode = 0
bai ValveStarts = no data stored
bai VortexFlowSensor = no data stored

und nun ist ValveMode bei find vorhanden, alles klar?

hier die Erklärung des "find" aus der Wiki von John:
ZitatFind configured messages by name. This will also print the cached value if requested.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

mattensn

ok, das war verständlich. langsam wirds..

bei einigen Werten kommt: invalide position in decode oder element not found in decode

bedeutet im ersten der Wert ist nicht relevant und beim zweiten der Wert ist nicht existent?

was muss man mit diesen csv files anfangen? sind die nur für den GEABBUS relevant?


Reinhart

#473
Nein, GAEBUS setzt direkt auf ebusd auf und was ebusctl nicht kann, das kann GAEBUS auch nicht auflösen!
GAEBUS ist eigentlich ja nur ein KlickKlack Tool damit der User sich nicht um die bai.cfg und sonstiges kümmern muss.
Für meine Zwecke ist er etwas unflexibel und gerade für Neueinsteiger etwas schwer zu konfigurieren bis man den Dreh begriffen hat.

Bei solchen Meldungen stimmt in der Definition der CSV Files was nicht, bzw. ist nicht für deine HW geeignet/vorhanden.
Darum teste ich immer vorher in der Konsole ob sich der Datenpunkt überhaupt lohnt ihn anzuzeigen zu lassen.

Zu den CSV Files, John hat ja im Paket alle CSV für jede erdenkliche Hardware aus der DB beigelegt, verwenden tust du 2, die anderen liegen brach und werden nicht verwendet (außer du baust HWs dazu).

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

mattensn

Vielen Dank erst einmal. Ich bin gerade mal dabei gannnnz viel auf der Konsole abzufragen. Hochinteressant was man da so auslesen kann.  8)
Werde mich die Woche mal an das Fhem setzen und ein paar sinnige Werte übernehmen. Melde mich dann bei Fragen wieder.
Vielen vielen Dank!!!!! ;D ;D

Reinhart

Zitat von: mattensn am 14 Februar 2016, 21:46:58
Werde mich die Woche mal an das Fhem setzen und ein paar sinnige Werte übernehmen.

Das ist ein guter Punkt, denn ich glaube dass viele eBus Neueinsteiger in der Flut der Datenmenge untergehen. Wenig ist hier mehr, gerade am Anfang sollten es Daten sein die man auch wirklich gebrauchen kann. Zwischen 10 - 15 Datenpunkte ist sicher mehr als ausreichend, bei Solareinspeisung kann es dann mehr sein.

Auf der Konsole testen ist insofern von großem Vorteil, denn dann sieht man sofort wie man die Regex filtern muss. Meist kann man gleich bei der Abfrage noch genauer filtern, so wie ich es oben im Beispiel mit der Vorlaufsoll mit "temp" gemacht habe.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ansi7k3

Warum gibt es zwei Readings pro ECMDDevice?  Z.B für Ruecklauf haben wir einmal State und Ruecklauf selbst. In der Datenbank gibt es entsprechend zwei Einträge pro Messung. Es ergibt keinen Sinn, meiner Meinung nach.

Siehe Anhang

Reinhart

Das ist nur bei ein paar Meßwerten so, nämlich jene die auch im Broadcast als "Status" kommen.

r,,Status01,Vorlauftemperatur/Rücklauftemperatur/Aussentemperatursensor/WW Temperatur/Speichertemperatur/Pumpenstatus,,,B511,01,,,temp1;temp1;temp2;temp1;temp1;pumpstate,,,,,,
r,,Status02,Betriebsart/Maximaltemperatur/ReglerCurrentTEMP/Maximaltemperatur/ReglerCurrentTemp,,,B511,02,,,hwcmode;temp0;temp1;temp0;temp1,,,,,,


d.h. du kannst die in 2 Varianten abfragen, einmal nur aus dem Buffer mit -m oder mit -f (forced) wirklich vom Bus abfragen.


get Vorlauf cmd {"r -f flowtemp temp\n"}
get Vorlauf cmd {"r -m 10 status01 temp1.0\n"}


Wenn ich jetzt speziell die HKurve in deiner Liste betrachte, dann wird die ja einmal dem Reading "HKurve" zugeordnet und gleichzeitig ist es auch der "state", somit siehst du sie 2 mal. Wenn dich das stört, dann ordne sie nur dem Reading "state" zu.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

amunra

Zitat von: ansi7k3 am 14 Februar 2016, 23:26:28
Warum gibt es zwei Readings pro ECMDDevice?  Z.B für Ruecklauf haben wir einmal State und Ruecklauf selbst. In der Datenbank gibt es entsprechend zwei Einträge pro Messung. Es ergibt keinen Sinn, meiner Meinung nach.

Siehe Anhang

Hmm, nun ja - (Kurzfassung)
Ein Device hat immer ein Zustand welches durch den "state" (auch als reading), repräsentiert wird.
Der Zustand kann z.B. sein: an/aus auf/zu verbunden/getrennt reading xyz mit wert abc gelesen/geschrieben etc.

Ein Device kann mehrere Informationen speichern, repräsentiert durch Reading(s).

Ändert sich der Zustand (state) eines Devices oder einer Information (Readings), dann wird ein Änderungsevent initiiert (ist konfigurierbar siehe event-on-change-reading ...).

Auf diese Events kannst du reagieren z.B. ändert sich der Zustand (status) oder eine Information, dann tue etwas z.B. Information in eine Datenbank ablegen oder schalte etwas.... etc.

Wenn ich dich richtig verstanden habe, dann möchtest Du die Information (ein Reading: Ruecklauf) eines Devices (ECMDDevice) in eine DB speichern. Dann gibt es hier mehrere Möglichkeiten wie man das realisieren kann:

1) Filtern: So kann man z.B. in DBLog Definition direkt ein Filter setzen: <ECMDDevice>:(ruecklauf|vorlauf).* => hiermit werden nur die Readings ruecklauf und vorlauf gespeichert.
2) Du arbeitest event-on-change-reading und trägst eine positive Liste der Readings ein die einen Event generieren darf.
3) ....

Welche Variante/Möglichkeiten für dich die richtige ist, musst Du entscheiden, die haben immer ihre Vor- und Nachteile.

Viele Grüße
Arthur

ansi7k3

#479
Zitat von: Reinhart am 15 Februar 2016, 10:06:33
Wenn dich das stört, dann ordne sie nur dem Reading "state" zu.

LG

Wenn ich wusste wie man es "zuordnet".. Ich habe, glaube, schon alles durchgelesen,  aber find nicht woher die "Vorlauf: 34.9" , als Beispiel, in  die DBlog, bzw. in Filelog kommt. Warum wird aus einer Reading zwei Einträge. Einmal "Vorlauf:  34.9" und einmal "Vorlauf  34.9" (mit ":" und ohne). postproc gibt doch nur 34.9 zurück. "Vorlauf" kommt als %NAME, aber wo kommt ":" her und warum wird es als "EVENT" gespeichert?


# vorlauftemperatur
get Vorlauf cmd {"r -f flowtemp temp\n"}

get Vorlauf expect "\d+\.\d+\n\n"
get Vorlauf postproc { sprintf("%5.1f",$_) }


Gibt es etwas wo man es nachschlagen kann?