Autor Thema: eBus Schaltung V2 in Betrieb nehmen  (Gelesen 57739 mal)

Offline Reinhart

  • Hero Member
  • *****
  • Beiträge: 1887
Antw:eBus Schaltung V2 in Betrieb nehmen
« Antwort #735 am: 16 April 2019, 19:29:06 »
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
« Letzte Änderung: 16 April 2019, 19:31:20 von Reinhart »
FHEM auf Raspy3 mit Stretch + SSD, mit FS20, Homematic, ESP8266, Sonoff, Electrodragon, eBus, RPi mit COC,NanoCUL, HM-CFG-LAN Adapter, MQTT, ESPEasy Bridge, Alexa + Custom Skills

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1553
Antw:eBus Schaltung V2 in Betrieb nehmen
« Antwort #736 am: Gestern um 17:41:15 »
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

Offline Reinhart

  • Hero Member
  • *****
  • Beiträge: 1887
Antw:eBus Schaltung V2 in Betrieb nehmen
« Antwort #737 am: Gestern um 21:01:43 »
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 Raspy3 mit Stretch + SSD, mit FS20, Homematic, ESP8266, Sonoff, Electrodragon, eBus, RPi mit COC,NanoCUL, HM-CFG-LAN Adapter, MQTT, ESPEasy Bridge, Alexa + Custom Skills

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1553
Antw:eBus Schaltung V2 in Betrieb nehmen
« Antwort #738 am: Gestern um 21:46:27 »
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?

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1553
Antw:eBus Schaltung V2 in Betrieb nehmen
« Antwort #739 am: Gestern um 22:07:04 »
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

 

decade-submarginal