eBus Schaltung V2 in Betrieb nehmen

Begonnen von Reinhart, 15 November 2017, 17:41:33

Vorheriges Thema - Nächstes Thema

Reinhart

#735
der Status kommt so vom eBus:

38.0;29.0;12.500;30.0;29.0;on

_Ruecklauf  33.0 2019-04-13 21:48:37
_Vorlauf    33.0 2019-04-13 21:48:37
_WWSpeicher 31.0 2019-04-13 21:48:37
_Warmwasser 30.0 2019-04-13 21:48:37

MQTT2 macht dann mit zusätzlichem jsonMap das draus

und im Anhang sieht du die daraus erzeugten Ausgaben, entweder mit Readingsgroup oder mit devStateIcon erzeugt. Die Farbgebung erfolgt dynamisch je nach Temperatur (kalt=blau, heiß=rot) .
Genau so kann man es bei deinen gewünschten Readings dann durchführen.

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

FunkOdyssey

Danke, das macht Hoffnung. Ich habe heute einige Stunden versucht, mit json2nameValue (mit/ohne optionalen Parametern) und mit dem jsonmap-Attribut eine vernünftige Ausgabe zu erhalten. Und ja, im MQTT2_Server habe ich autocreate auf complex.

Getestet habe ich es hier mit "LuftmengeStufe0". Sobald ich json2nameValue in der readingList verwende, kann ich aber kein GET mehr durchführen und ich erhalten einen TimeOut.

Internals:
   CHANGED   
   CID        ebusd_kwl
   DEF        ebusd_kwl
   DEVICETOPIC MQTT2_ebusd_kwl
   IODev      mqtt2Server
   LASTInputDev mqtt2Server
   MSGCNT     140943
   NAME       MQTT2_ebusd_kwl
   NR         726
   STATE      Normal
   TYPE       MQTT2_DEVICE
   mqtt2Server_MSGCNT 140943
   mqtt2Server_TIME 2019-04-17 17:36:02
   READINGS:
     2019-04-17 17:36:00   Ablufttemperatur 20.8
     2019-04-17 17:36:00   Aussenlufttemperatur 18.5
     2019-04-17 17:11:40   BeleuchtungDisplay 10;0;100;5;10
     2019-04-17 17:00:00   BetriebsstundenTotal 31710;32768;32767;1;0
     2019-04-17 17:00:01   BypassHysterese 2.0;0.0;5.0;0.5;2.0
     2019-04-17 17:00:01   BypassTemperatur 21.0;15.0;35.0;0.5;22.0
     2019-04-17 17:00:01   Bypassbetrieb   auto;0;2;1;0
     2019-04-17 17:36:01   Bypassstrom     0
     2019-03-26 20:02:42   Contact1Position 0
     2019-03-26 20:03:12   Contact2Position 0
     2019-04-17 17:05:40   DruckungleichgewichtZulaessig nicht zulaessig;0;1;1;1
     2019-04-08 22:01:29   EWTStatus       1
     2019-04-17 17:00:00   Errors          3;0;0;0;0;0;0;0;0;0;0
     2019-04-17 17:00:01   FestesDruckungleichgewicht 0;-100;100;1;0
     2019-04-17 17:36:01   FilterStatus    Clean
     2019-04-17 17:36:01   FrostStatus     No Frost
     2019-04-17 17:36:01   IstwertAbluftdruck 63.9
     2019-04-17 17:36:02   IstwertDeltaDruck -6.0
     2019-04-17 17:36:01   IstwertZuluftdruck 57.9
     2019-04-08 21:41:19   LeistungNachheizregister 0
     2019-04-17 17:36:01   LeistungVorheizregister 0
     2019-04-17 17:36:02   LuefterStatus   Const. Flow
     2019-04-17 17:00:00   LuftmengeFilterSchwellwert 432
     2019-04-17 17:00:01   LuftmengeMitFilter 215
     2019-04-17 17:00:01   LuftmengeStufe0 50;0;50;50;50
     2019-04-17 17:00:02   LuftmengeStufe1 100;50;400;5;100
     2019-04-17 17:00:02   LuftmengeStufe2 200;50;400;5;200
     2019-04-17 17:00:02   LuftmengeStufe3 300;50;400;5;300
     2019-04-17 17:00:06   LuftmengeTotal  5862000;32768;32767;1;0
     2019-04-08 22:01:59   OptionTemperature 0
     2019-04-08 21:59:54   PerilexPosition 1
     2019-04-17 17:36:02   PosStufenschalter 2
     2019-03-26 19:57:32   RHSensorEmpfindlichkeit -1;-1;-1;-1;-1
     2019-04-08 21:54:44   RHSensorVorhanden -;-;-;-;-
     2019-04-17 17:00:02   SoftwareVersion S1.04.02 0001
     2019-04-17 17:36:02   SollAbluftmenge 200
     2019-04-17 17:36:02   SollZuluftmenge 200
     2019-04-17 17:36:02   StatusBypass    Open
     2019-04-17 17:36:02   StatusNachheizregister Disabled
     2019-04-17 17:36:02   StatusVorheizregister Disabled
     2019-04-17 17:00:02   TageMitFilter   75
     2019-04-17 17:36:01   TatsaechlicheAbluftmenge 200
     2019-04-17 17:36:01   TatsaechlicheDrehzahlAbluft 2079
     2019-04-17 17:36:02   TatsaechlicheDrehzahlDelta -186.0
     2019-04-17 17:36:01   TatsaechlicheDrehzahlZuluft 1893
     2019-04-17 17:36:01   TatsaechlicheZuluftmenge 199
     2019-04-17 17:36:00   Ventilatorbetrieb Normal
     2019-04-17 17:00:03   VorheizRegister_inst -
     2019-04-08 21:58:54   WertDIPSchalter 29
     2019-04-17 17:00:03   ZentralheizungWRG aus;0;1;1;0
     2019-04-08 22:01:59   associatedWith  MQTT2_ebusd
     2019-04-08 21:36:39   error           E000
     2019-04-08 21:45:59   id              ENCON;  ;-;-
     2019-03-26 20:03:41   state           LuftmengeStufe1
Attributes:
   IODev      mqtt2Server
   event-on-change-reading .*
   getList    Ablufttemperatur:noArg Ablufttemperatur ebusd/kwl/Ablufttemperatur/get
Aussenlufttemperatur:noArg Aussenlufttemperatur ebusd/kwl/Aussenlufttemperatur/get
BeleuchtungDisplay:noArg BeleuchtungDisplay ebusd/kwl/BeleuchtungDisplay/get
BetriebsstundenTotal:noArg BetriebsstundenTotal ebusd/kwl/BetriebsstundenTotal/get
BypassHysterese:noArg BypassHysterese ebusd/kwl/BypassHysterese/get
BypassTemperatur:noArg BypassTemperatur ebusd/kwl/BypassTemperatur/get
Bypassbetrieb:noArg Bypassbetrieb ebusd/kwl/Bypassbetrieb/get
Bypassstrom:noArg Bypassstrom ebusd/kwl/Bypassstrom/get
DruckungleichgewichtZulaessig:noArg DruckungleichgewichtZulaessig ebusd/kwl/DruckungleichgewichtZulaessig/get
Errors:noArg Errors ebusd/kwl/Errors/get
FestesDruckungleichgewicht:noArg FestesDruckungleichgewicht ebusd/kwl/FestesDruckungleichgewicht/get
FilterStatus:noArg FilterStatus ebusd/kwl/FilterStatus/get
FrostStatus:noArg FrostStatus ebusd/kwl/FrostStatus/get
IstwertAbluftdruck:noArg IstwertAbluftdruck ebusd/kwl/IstwertAbluftdruck/get
IstwertZuluftdruck:noArg IstwertZuluftdruck ebusd/kwl/IstwertZuluftdruck/get
LeistungVorheizregister:noArg LeistungVorheizregister ebusd/kwl/LeistungVorheizregister/get
LuefterStatus:noArg LuefterStatus ebusd/kwl/LuefterStatus/get
LuftmengeFilterSchwellwert:noArg LuftmengeFilterSchwellwert ebusd/kwl/LuftmengeFilterSchwellwert/get
LuftmengeMitFilter:noArg LuftmengeMitFilter ebusd/kwl/LuftmengeMitFilter/get
LuftmengeStufe0:noArg LuftmengeStufe0 ebusd/kwl/LuftmengeStufe0/get
LuftmengeStufe1:noArg LuftmengeStufe1 ebusd/kwl/LuftmengeStufe1/get
LuftmengeStufe2:noArg LuftmengeStufe2 ebusd/kwl/LuftmengeStufe2/get
LuftmengeStufe3:noArg LuftmengeStufe3 ebusd/kwl/LuftmengeStufe3/get
LuftmengeTotal:noArg LuftmengeTotal ebusd/kwl/LuftmengeTotal/get
PosStufenschalter:noArg PosStufenschalter ebusd/kwl/PosStufenschalter/get
SoftwareVersion:noArg SoftwareVersion ebusd/kwl/SoftwareVersion/get
SollAbluftmenge:noArg SollAbluftmenge ebusd/kwl/SollAbluftmenge/get
SollZuluftmenge:noArg SollZuluftmenge ebusd/kwl/SollZuluftmenge/get
StatusBypass:noArg StatusBypass ebusd/kwl/StatusBypass/get
StatusNachheizregister:noArg StatusNachheizregister ebusd/kwl/StatusNachheizregister/get
StatusVorheizregister:noArg StatusVorheizregister ebusd/kwl/StatusVorheizregister/get
TageMitFilter:noArg TageMitFilter ebusd/kwl/TageMitFilter/get
TatsaechlicheAbluftmenge:noArg TatsaechlicheAbluftmenge ebusd/kwl/TatsaechlicheAbluftmenge/get
TatsaechlicheDrehzahlAbluft:noArg TatsaechlicheDrehzahlAbluft ebusd/kwl/TatsaechlicheDrehzahlAbluft/get
TatsaechlicheDrehzahlZuluft:noArg TatsaechlicheDrehzahlZuluft ebusd/kwl/TatsaechlicheDrehzahlZuluft/get
TatsaechlicheZuluftmenge:noArg TatsaechlicheZuluftmenge ebusd/kwl/TatsaechlicheZuluftmenge/get
Ventilatorbetrieb:noArg Ventilatorbetrieb ebusd/kwl/Ventilatorbetrieb/get
VorheizRegister_an:noArg VorheizRegister_an ebusd/kwl/VorheizRegister_an/get
VorheizRegister_inst:noArg VorheizRegister_inst ebusd/kwl/VorheizRegister_inst/get
ZentralheizungWRG:noArg ZentralheizungWRG ebusd/kwl/ZentralheizungWRG/get

   readingList ebusd/kwl/TatsaechlicheDrehzahlAbluft:.* TatsaechlicheDrehzahlAbluft
ebusd/kwl/Ventilatorbetrieb:.* Ventilatorbetrieb
ebusd/kwl/PosStufenschalter:.* PosStufenschalter
ebusd/kwl/TatsaechlicheDrehzahlZuluft:.* TatsaechlicheDrehzahlZuluft
ebusd/broadcast/id:.* id
ebusd/broadcast/error:.* error
ebusd/kwl/Aussenlufttemperatur:.* Aussenlufttemperatur
ebusd/kwl/StatusBypass:.* StatusBypass
ebusd/kwl/StatusVorheizregister:.* StatusVorheizregister
ebusd/kwl/FrostStatus:.* FrostStatus
ebusd/kwl/TatsaechlicheZuluftmenge:.* TatsaechlicheZuluftmenge
ebusd/kwl/TatsaechlicheAbluftmenge:.* TatsaechlicheAbluftmenge
ebusd/kwl/LuefterStatus:.* LuefterStatus
ebusd/kwl/SollZuluftmenge:.* SollZuluftmenge
ebusd/kwl/SollAbluftmenge:.* SollAbluftmenge
ebusd/kwl/FilterStatus:.* FilterStatus
ebusd/kwl/TageMitFilter:.* TageMitFilter
ebusd/kwl/LuftmengeMitFilter:.* LuftmengeMitFilter
ebusd/kwl/LuftmengeFilterSchwellwert:.* LuftmengeFilterSchwellwert
ebusd/kwl/BetriebsstundenTotal:.* BetriebsstundenTotal
ebusd/kwl/LuftmengeTotal:.* LuftmengeTotal
ebusd/kwl/LuftmengeStufe0:.* { json2nameValue($EVENT) }
ebusd/kwl/LuftmengeStufe1:.* LuftmengeStufe1
ebusd/kwl/LuftmengeStufe2:.* LuftmengeStufe2
ebusd/kwl/LuftmengeStufe3:.* LuftmengeStufe3
ebusd/kwl/BypassHysterese:.* BypassHysterese
ebusd/kwl/Bypassbetrieb:.* Bypassbetrieb
ebusd/kwl/ZentralheizungWRG:.* ZentralheizungWRG
ebusd/kwl/FestesDruckungleichgewicht:.* FestesDruckungleichgewicht
ebusd/kwl/RHSensorVorhanden:.* RHSensorVorhanden
ebusd/kwl/RHSensorEmpfindlichkeit:.* RHSensorEmpfindlichkeit
ebusd/kwl/BeleuchtungDisplay:.* BeleuchtungDisplay
ebusd/kwl/SoftwareVersion:.* SoftwareVersion
ebusd/kwl/Errors:.* Errors
ebusd/kwl/PerilexPosition:.* PerilexPosition
ebusd/kwl/Contact1Position:.* Contact1Position
ebusd/kwl/Contact2Position:.* Contact2Position
ebusd/kwl/Ablufttemperatur:.* Ablufttemperatur
ebusd/kwl/LeistungVorheizregister:.* LeistungVorheizregister
ebusd/kwl/IstwertZuluftdruck:.* IstwertZuluftdruck
ebusd/kwl/IstwertAbluftdruck:.* IstwertAbluftdruck
ebusd/kwl/StatusNachheizregister:.* StatusNachheizregister
ebusd/kwl/Bypassstrom:.* Bypassstrom
ebusd/kwl/DruckungleichgewichtZulaessig:.* DruckungleichgewichtZulaessig
ebusd/kwl/VorheizRegister_inst:.* VorheizRegister_inst
ebusd/kwl/WertDIPSchalter:.* WertDIPSchalter
ebusd/kwl/EWTStatus:.* EWTStatus
ebusd/kwl/BypassTemperatur:.* BypassTemperatur
ebusd/kwl/LeistungNachheizregister:.* LeistungNachheizregister
ebusd/kwl/OptionTemperature:.* OptionTemperature
   setList    Ventilatorbetrieb:Feuchteschutz,Reduziert,Normal,Intensiv ebusd/kwl/Ventilatorbetrieb/set $EVTPART1
LuftmengeStufe0:50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300 ebusd/kwl/LuftmengeStufe0/set
LuftmengeStufe1:50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300 ebusd/kwl/LuftmengeStufe1/set
LuftmengeStufe2:50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300 ebusd/kwl/LuftmengeStufe2/set
LuftmengeStufe3:50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300 ebusd/kwl/LuftmengeStufe3/set
BypassTemperatur ebusd/kwl/BypassTemperatur/set
BypassHysterese ebusd/kwl/BypassHysterese/set
Bypassbetrieb:auto,geschlossen,geoeffnet ebusd/kwl/Bypassbetrieb/set
VorheizRegister_an:nein,ja ebusd/kwl/VorheizRegister_an/set
DruckungleichgewichtZulaessig:nichtZulaessig,zulaessig ebusd/kwl/DruckungleichgewichtZulaessig/set
FestesDruckungleichgewicht ebusd/kwl/FestesDruckungleichgewicht/set

   stateFormat Ventilatorbetrieb
   userReadings TatsaechlicheDrehzahlDelta { sprintf("%.1f",ReadingsVal($name,"TatsaechlicheDrehzahlZuluft",0)-ReadingsVal($name,"TatsaechlicheDrehzahlAbluft",0)); },
IstwertDeltaDruck { sprintf("%.1f",ReadingsVal($name,"IstwertZuluftdruck",0)-ReadingsVal($name,"IstwertAbluftdruck",0)); }


jsonMap-Versuch:

LuftmengeStufe0_0_value:_Wert0
LuftmengeStufe0_1_value:_Wert1
LuftmengeStufe0_2_value:_Wert2
LuftmengeStufe0_3_value:_Wert3
LuftmengeStufe0_4_value:_Wert4

Reinhart

da funktioniert noch was nicht richtig, im "MQTT2_Device" sollte es einen Device mit dem namen "MQTT2_ebusd" geben und diesem muss einmal das Template  "E_00_eBus_daemon_splitter" zugewiesen werden. Dann sollte die Bridgeregexp gesetzt worden sein.

(ebus.)[^/]*/(bai|[\d]+|cc|e7f|ehp|f[\d][\d]|hc|he.|hmu|hwc|mc|mc.[\d]|omu|omu.[\d]|pms|rcc|rcc.[\d]|sc|sdr_p|ui|uih|v[\d][\d]|v81|v81.[\d]|vd[\d]|vl[\d]|vr_[\d][\d]|zeo)/.*:.* "$1_$2"
(ebus.)[^/]*/(global|broadcast|general|scan|)/.*:.* "$1"

so sollte die regexp aussehen.

Wie ich aus deiner List sehe, wird offensichtlich keine bridgeregexp angewandt (oder kann es nicht), denn Readings wo die einzelnen Werte mit Semikolon getrennt sind sollte es nicht geben. Ebenfalls wird im Splitter auch autocreate in diesem Device auf 1 gesetzt.

Mir ist jetzt auch klar, warum du mit diesen Readings nicht weiter kommst.
Schau bitte auch einmal in der /etc/default/ebusd nach ob der Parameter "--mqttjson" auch wirklich in der MQTT Definition gesetzt ist, so wie die Werte bei kommen scheint dieser Parameter zu fehlen.
Meine sieht so aus:
EBUSD_OPTS="-d /dev/ttyebus -p 8888 -l /var/log/ebusd.log --scanconfig -c /etc/ebusd --accesslevel=* --mqttport=1883 --mqttjson --mqtthost=10.0.0.8 --mqtttopic=ebusd/%circuit/%name --address=ff"

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

FunkOdyssey

Danke dir für deine Hilfe.
Den Splitter hatte ich schon korrekt gesetzt. Nur halt noch in der alten Schreibweise und mein Device manuell ergänzt, weil es im Ausdruck fehlte. Autocreate war im mqtt2_ebusd auch auf 1.

Mit dem ebusd-Parameter mqttjson hast du Recht. Hatte ich bewusst wieder entfernt, weil es mir absolut übertrieben komplexe Arrays zurücklieferte. Anstatt einfach nur die Temperatur in nem Reading zu haben, hatte ich dann ein Array, welches ich wieder manuell zerlegen muss. Ich verstehe den Sinn darin nicht. Bei meinem Semikolon-getrennten Readings macht es jedoch wiederum Sinn. Nur schade, dass man die JSON-Ausgabe global einschalten kann. Mein Device ist somit erst einmal unbrauchbar, da alle Readings neu angepasst werden müssen.

Muss man denn wirklich nun für jedes einzelne Reading eine JSONMAP anlegen?

Folgendes finde ich enorm und unnötig komplex?


ebusd/kwl/Aussenlufttemperatur:.* { json2nameValue($EVENT, 'Aussenlufttemperatur') }



Aussenlufttemperatur
{
     "0": {"name": "", "value": 17.1}}
}


Hier würde mir doch ein sauberes Reading reichen, da ich hier kein Array "parsen" muss.

Oder was übersehe ich hier?

FunkOdyssey

Okay. Ich sehe wie es sich entwickelt und taste mich langsam ran.
Das Device wird nur wahnsinnig umständlich und umfangreich.
Ich fand meine readinglist, getlist und setlist schon viel zu lang.
Jetzt wird es mit JSONMAP und der komplexeren readinglist noch "voller". Aber es scheint zu klappen. Dauert noch ein wenig bis ich alles fertig habe. Bin gerade am Handy.


ebusd/kwl/Aussenlufttemperatur:.* { json2nameValue($EVENT, 'Aussenlufttemperatur_', $JSONMAP) }



jsonMap
Aussenlufttemperatur_0_value:Aussenlufttemperatur Aussenlufttemperatur_0_name:0

FunkOdyssey

Jetzt bin ich nicht am Handy und kann mir auch mehr Mühe geben beim Schreiben. :-)
Ich habe das Prinzip, glaube ich, nun verstanden. Ich muss also in meinem readingList-Attribut nun ÜBERALL mit json2nameValue arbeiten.
Problem dabei: Die Codemirror-Eingabe wird so voll, dass ich das Formular über OK kaum noch zum Server senden kann. Aber das ist hier erst einmal unwichtig.

Ich frage mich nur, ob es dafür nicht eine einfachere Schreibweise gibt. Ich wiederhole ein- und denselben Namen ja mehrfach im ganzen MQTT2_DEVICE. Bereits zweimal je Zeile in der ReadingList.

   readingList ebusd/kwl/TatsaechlicheDrehzahlAbluft:.* { json2nameValue($EVENT, 'TatsaechlicheDrehzahlAbluft_', $JSONMAP) }
ebusd/kwl/TatsaechlicheDrehzahlZuluft:.* { json2nameValue($EVENT, 'TatsaechlicheDrehzahlZuluft_', $JSONMAP) }
ebusd/kwl/Aussenlufttemperatur:.* { json2nameValue($EVENT, 'Aussenlufttemperatur_', $JSONMAP) }
ebusd/kwl/TatsaechlicheZuluftmenge:.* { json2nameValue($EVENT, 'TatsaechlicheZuluftmenge_', $JSONMAP) }
ebusd/kwl/TatsaechlicheAbluftmenge:.* { json2nameValue($EVENT, 'TatsaechlicheAbluftmenge_', $JSONMAP) }
ebusd/kwl/Ablufttemperatur:.* { json2nameValue($EVENT, 'Ablufttemperatur_', $JSONMAP) }
ebusd/kwl/IstwertZuluftdruck:.* { json2nameValue($EVENT, 'IstwertZuluftdruck_', $JSONMAP) }
ebusd/kwl/IstwertAbluftdruck:.* { json2nameValue($EVENT, 'IstwertAbluftdruck_', $JSONMAP) }


Das Array/JSON was mir dann normalerweise zur Verfügung gestellt wird, ist ja zu 90% für mich uninteressant, da ich DIREKT den "name" als Readingnamen nutzen möchte und das "value" als Wert. Dennoch muss ich umständlich mit dem jsonMap-Attribut alles wieder "zurücktransformieren":

   jsonMap    Aussenlufttemperatur_0_value:Aussenlufttemperatur Aussenlufttemperatur_0_name:0
Ablufttemperatur_0_value:Ablufttemperatur Ablufttemperatur_0_name:0
IstwertAbluftdruck_0_value:IstwertAbluftdruck IstwertAbluftdruck_0_name:0
IstwertZuluftdruck_0_value:IstwertZuluftdruck IstwertZuluftdruck_0_name:0
TatsaechlicheAbluftmenge_0_value:TatsaechlicheAbluftmenge TatsaechlicheAbluftmenge_0_name:0
TatsaechlicheDrehzahlAbluft_0_value:TatsaechlicheDrehzahlAbluft TatsaechlicheDrehzahlAbluft_0_name:0
TatsaechlicheDrehzahlZuluft_0_value:TatsaechlicheDrehzahlZuluft TatsaechlicheDrehzahlZuluft_0_name:0
TatsaechlicheZuluftmenge_0_value:TatsaechlicheZuluftmenge TatsaechlicheZuluftmenge_0_name:0


Zugegeben: Das macht Sinn, wenn man umfangreiche Arrays hat wie das folgende:

LuftmengeStufe2 {
     "aktuell": {"value": 200},
     "minimum": {"value": 50},
     "maximum": {"value": 400},
     "Schrittgroesse": {"value": 5},
     "Werkseinstellung": {"value": 200}}


Daraus werden mir auch ohne jsonMap folgende Readings generiert:

LuftmengeStufe2_aktuell_value
LuftmengeStufe2_Schrittgroesse_value
etc.


Schade nur, dass dort das Suffix "_value" noch angefügt wird.




Entweder habe ich etwas übersehen oder ich würde mir es wünschen, wenn "json2nameValue" automatisch schöne Readingnamen erstellen könnte.
Mit dem "_value"-Suffix kann ich ja leben, aber das manuelle Einkürzen über jsonMap finde ich schon recht umständlich. Vor allem, weil nur ein Arrayindex (oder wie immer das bei JSON heißt) geliefert wird.



Reinhart

So wie ich sehe war das fehlende Jsonformat der Übeltäter und du hast dich nun schon etwas intensiver damit auseinander gesetzt.
Das Suffix "_value" kommt daher, das es auch Readings mit "_name" gibt und dann macht es wirklich Sinn um den Messwert einem Text zuordnen zu können.. Beim Staus01 und Status02 ist es dann so.

Alle Templates sind auch auf das Jsonformat konzipiert, auch andere für Sonfoff etc. Es ist schon klar, dass viele Readings nicht benötigt werden, aber die ReadingList wird ja ohnehin automatisch erstellt was eben vom eBus eintrifft bzw. abgefragt wird. Du kannst aber einmal versuchen autocreate von "complex" auf "simplex" zu stellen, dann werden die Namen kürzer. Complex ist eigentlich nur dann notwendig, wenn Messwerte vom eBus gleiche Namen haben, man kann sie sonst nicht unterscheiden und sie überschreiben sich dann gegenseitig. Meines Wissens tritt das nur beim Status01 und Status02 auf. Rudolf hat uns das extra für diesen Zeck eingebaut. Nur musst du dann bei einem bleiben, was halt für dich besser geeignet ist.

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

goosst

Dear

The v2.2 adapter worked for a while, but I've started getting the messages below when running "ebusd -f --scanconfig"

2019-07-27 19:59:42.836 [bus notice] device invalid
2019-07-27 19:59:47.838 [bus error] unable to open /dev/ttyUSB0: ERR: generic device error


I think I might be a bit lost where to look for information:
- is it described somewhere how the LED's should behave: blinking / not blinking/ fast or slow blinking / ... ?
- anything I can easily measure with a multimeter without having oscilloscopes or external power supplies available?

thank you
Stijn

john30

Zitat von: goosst am 27 Juli 2019, 20:05:15
2019-07-27 19:59:42.836 [bus notice] device invalid
2019-07-27 19:59:47.838 [bus error] unable to open /dev/ttyUSB0: ERR: generic device error

this message indicates that the UART might be broken.
I'd start with a system reboot (as I saw these messages also appear after an OS update).
Then (or even before the reboot) you might want to look at what dmesg spits out as well as look at the syslog to check for UART issues.
If it still doesn't work after reboot and you see repeatedly hints in syslog/dmesg of the UART detaching from USB, then most probably it is broken and needs to be replaced.
author of ebusd

goosst

Thanks for the reply,

Zitatthis message indicates that the UART might be broken.
I'd start with a system reboot (as I saw these messages also appear after an OS update).

I've freshly installed MX linux on the laptop I was using (now I have a bunch of reboot/shutdown issues with this OS but anyway ...).
"ebusd -f --scanconfig" gives again expected behaviour now.

What concerns me is that this started to happen after a period of time, see video: http://users.telenet.be/goosst/VID_20190729_074319.mp4
I'm not yet sure at what point in time exactly these lights start to behave disco-ish (it's not in the next half an hour after bootup). But needless to say it concerns me when using this on a heating system ... . If anyone has seen this before, feel free to provide feedback.

thanks






Reinhart

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

kalled

Hallo Reinhart,

wird es auch wieder einen Basisbausatz, also die "nicht RPI" Variante geben?

Danke & VG
Kalle

Reinhart

Es wird in Kürze Basisplatinen geben, aber keinen Bausatz.
Wenn du die Steckerleiste im RPI-Bausatz nicht einlötest und einen externen UART anschließt kannst du ihn auch verwenden, aber eine Erweiterungsplatine ist nicht möglich. Die Anschlußpins für den UART sind auf der RPI-Platine ja vorhanden.

Die schönere Lösung ist natürlich die Basisplatine.

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

john30

Basis- und Erweiterungsplatinen sind unterwegs und können dann hier bestellt werden.
author of ebusd

TomLee

Hallo,

letzten Winter hatte ich keine Probleme mit meinem Ebus-Adapter. Im Frühling dann fing mein Problem an, der Adapter verliert immer nach etwa 30 Stunden die MQTT-Verbindung, seit dem ist der Raspi Spannungsfrei gewesen  :P

Jetzt vor 2 Tagen hab ich ihn wieder in Betrieb genommen.

Im Log sehe sehe ich nichts auffälliges, Daten werden weiterhin empfangen, es gibt 2x die Meldung (2019-10-06 21:16:49.986 und 2019-10-06 22:29:03.190 [ebsud.log1])

[mqtt error] communication error: connection lost

und dann nur noch alle 20 Sekunden

[mqtt error] publish: The client is not currently connected

EBUSD_OPTS="-d /dev/ttyebus -p 8888 -l /var/log/ebusd.log --scanconfig --httpport=8080 --accesslevel=* --mqttport=1883 --mqttjson --mqtthost=192.168.188.26 --mqtttopic=ebusd/%circuit/%name --mqttuser=xxx --mqttpass=xxx"

pi@Ebus-Raspi:~ $ ebusctl info                                                                                                                                                                            version: ebusd 3.3.v3.3
update check: revision v3.3-40-gd9d1b9a available
access: *
signal: acquired
symbol rate: 23
max symbol rate: 166
min arbitration micros: 31
max arbitration micros: 519
min symbol latency: 3
max symbol latency: 10
reconnects: 0
masters: 3
messages: 632
conditional: 0
poll: 0
update: 9
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0902;HW=7401", loaded "vaillant/bai.0010010674.inc" ([PROD='0010010678']), "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0510;HW=6403", loaded "vaillant/15.700.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd


Wie geh ich der Sache auf den Grund ?

Gruß

Thomas