Hi,
mir qualmt der kopf :-\. also ich habe mir jetzt mehrere Mi BLE termometer (LYWSD03MMC 5€) gekauft und versuche hier im haus etwas überblick über die verschiedenen temperaturen und luftfeuchten zu verschaffen.
Dazu habe ich mehrere Tasmota (ESP32) "empfänger" aufgestellt und erfasse so die verschiedensten fühler.
das erzeugt mir in den readings immer wiederkehrend die selben werte aber mit unterschiedlichem namen.
soweit so gut. nun würde ich gern das ganze visualisieren und die jeweiligen readings sinnstiftend, aber separiert in einer readingsgroup zusammenfassen.
zwischenproblem: zum einen wollte ich zunächst das device per alias ansprechen. hab aber dann den umweg wieder über den echten namen (MQTT2_tasmota_38D104) gemacht. über forensuche fand ich zwar (das in einem set thread) "alias=TasmotaBLE.*" ... funzt aber nicht. auch aus den beispielen im wiki werd ich noch nicht ganz schlau, bzw. ich finds nicht. das ist aber nicht die eigentliche frage.
meine bisherige readingsgroup ist noch sehr rudimentär, aber es tut was es bis hier hin tun soll. aber das ende der fahnenstange ist natürlich noch lang nicht erreicht. da ich noch mit regex auf kriegsfuß steh, seh ich im augenblick den wald vor lauter bäumen nicht.
defmod rg_LYWSD03MMC readingsGroup <Tasmota>,<Battery>,<Temperature> MQTT2_tasmota.*:.*Battery,.*Temperature
(ergebniss siehe screenshot)
das schnibbelt mir aber den namen des sender-device ab und der soll dann auch nur jeweils einmal dran stehen (am besten als eigenes alias z.b. wohnzimmer, kinderzimmer usw.)
das ist aber nicht die eigentliche frage. hierzu mal ein list von einem "empfänger"
Internals:
CFGFN
CID tasmota_38D104
DEF tasmota_38D104
FUUID 637e5f49-f33f-5aff-f783-0f8b5bfa0c4dbef4
IODev MQTT2_Broker
LASTInputDev MQTT2_Broker
MQTT2_Broker_CONN MQTT2_Broker_192.168.1.39_51369
MQTT2_Broker_MSGCNT 3391
MQTT2_Broker_TIME 2022-11-24 15:27:54
MSGCNT 3391
NAME MQTT2_tasmota_38D104
NR 26592
STATE Online
<a href="http://192.168.1.39" target="_blank">tasmota-38D104-4356</a><br>
TYPE MQTT2_DEVICE
eventCount 3407
OLDREADINGS:
READINGS:
2022-11-24 15:27:31 ATC1caa7e_Battery 98
2022-11-24 15:27:31 ATC1caa7e_Btn 1
2022-11-24 15:27:31 ATC1caa7e_DewPoint 12.4
2022-11-24 15:27:31 ATC1caa7e_Humidity 58.1
2022-11-24 15:27:31 ATC1caa7e_RSSI -92
2022-11-24 15:27:31 ATC1caa7e_Temperature 21.0
2022-11-24 15:27:31 ATC1caa7e_mac a4c1381caa7e
2022-11-23 19:54:32 ATC21126c_Battery 100
2022-11-23 19:54:32 ATC21126c_Btn 1
2022-11-23 19:54:32 ATC21126c_DewPoint 12.7
2022-11-23 19:54:32 ATC21126c_Humidity 53.8
2022-11-23 19:54:32 ATC21126c_RSSI -85
2022-11-23 19:54:32 ATC21126c_Temperature 22.5
2022-11-23 19:54:32 ATC21126c_mac a4c13821126c
2022-11-23 19:54:31 ATCa78a8d_Battery 100
2022-11-23 19:54:31 ATCa78a8d_Btn 1
2022-11-23 19:54:31 ATCa78a8d_DewPoint 12.5
2022-11-23 19:54:31 ATCa78a8d_Humidity 52.8
2022-11-23 19:54:31 ATCa78a8d_RSSI -84
2022-11-23 19:54:31 ATCa78a8d_Temperature 22.7
2022-11-23 19:54:31 ATCa78a8d_mac a4c138a78a8d
2022-11-24 15:27:32 ATCd41686_Battery 100
2022-11-24 15:27:32 ATCd41686_Btn 1
2022-11-24 15:27:32 ATCd41686_DewPoint 11.8
2022-11-24 15:27:32 ATCd41686_Humidity 56.8
2022-11-24 15:27:32 ATCd41686_RSSI -98
2022-11-24 15:27:32 ATCd41686_Temperature 20.7
2022-11-24 15:27:32 ATCd41686_mac a4c138d41686
2022-11-24 15:27:31 ATCe57cb6_Battery 94
2022-11-24 15:27:31 ATCe57cb6_Btn 1
2022-11-24 15:27:31 ATCe57cb6_DewPoint 12.1
2022-11-24 15:27:31 ATCe57cb6_Humidity 59.5
2022-11-24 15:27:31 ATCe57cb6_RSSI -92
2022-11-24 15:27:31 ATCe57cb6_Temperature 20.2
2022-11-24 15:27:31 ATCe57cb6_mac a4c138e57cb6
2022-11-24 15:27:54 BLEDevices_40CBC0C9C296_i 0
2022-11-24 15:27:54 BLEDevices_40CBC0C9C296_r -85
2022-11-24 15:27:54 BLEDevices_6C0DC40738A9_i 4
2022-11-24 15:27:54 BLEDevices_6C0DC40738A9_r -98
2022-11-24 15:27:54 BLEDevices_A4C1381CAA7E_i 1
2022-11-24 15:27:54 BLEDevices_A4C1381CAA7E_r -95
2022-11-23 19:55:39 BLEDevices_A4C13821126C_i 1
2022-11-23 19:05:22 BLEDevices_A4C13821126C_n ATC_21126C
2022-11-23 19:55:39 BLEDevices_A4C13821126C_r -88
2022-11-23 19:55:39 BLEDevices_A4C138A78A8D_i 3
2022-11-23 19:05:22 BLEDevices_A4C138A78A8D_n ATC_A78A8D
2022-11-23 19:55:39 BLEDevices_A4C138A78A8D_r -86
2022-11-24 15:27:54 BLEDevices_A4C138D41686_i 3
2022-11-24 15:27:54 BLEDevices_A4C138D41686_r -98
2022-11-24 15:27:54 BLEDevices_A4C138E57CB6_i 2
2022-11-24 15:27:54 BLEDevices_A4C138E57CB6_r -92
2022-11-24 06:02:54 BLEDevices_C10706044363_i 5
2022-11-24 06:02:54 BLEDevices_C10706044363_r -96
2022-11-24 15:12:54 BLEDevices_DDAE15367AA9_i 4
2022-11-23 19:05:22 BLEDevices_DDAE15367AA9_n Mi Smart Band 6
2022-11-24 15:12:54 BLEDevices_DDAE15367AA9_r -76
2022-11-24 15:27:54 BLEDevices_total 5
2022-11-24 15:27:54 BLE_adverts 419007
2022-11-24 15:27:54 BLE_devices 5
2022-11-24 15:27:54 BLE_resets 0
2022-11-24 15:27:54 BLE_scans 3501
2022-11-24 15:27:54 Berry_HeapUsed 3
2022-11-24 15:27:54 Berry_Objects 43
2022-11-23 19:57:50 BootCount 13
2022-11-23 19:57:50 FallbackTopic cmnd/DVES_38D104_fb/
2022-11-23 19:57:50 GroupTopic cmnd/tasmotas/
2022-11-24 15:27:54 Heap 79
2022-11-23 19:57:50 Hostname tasmota-38D104-4356
2022-11-23 19:57:50 IPAddress 192.168.1.39
2022-11-23 19:57:49 LWT Online
2022-11-24 15:27:54 LoadAvg 19
2022-11-23 19:00:11 MI32Option6 1
2022-11-23 19:57:50 Module ESP32-DevKit
2022-11-24 15:27:54 MqttCount 1
2022-11-23 19:00:09 Restart Restarting
2022-11-23 19:57:50 RestartReason Vbat power on reset
2022-11-23 19:00:10 SetOption26 on
2022-11-24 15:27:54 Sleep 50
2022-11-24 15:27:54 SleepMode Dynamic
2022-11-23 19:00:09 StateText1 off
2022-11-23 19:00:09 StateText2 on
2022-11-23 19:00:10 StateText3 toggle
2022-11-23 19:00:10 StateText4 hold
2022-11-24 13:14:40 StatusPRM_BCResetTime 2022-11-23T18:03:19
2022-11-24 13:14:40 StatusPRM_Baudrate 115200
2022-11-24 13:14:40 StatusPRM_BootCount 12
2022-11-24 13:14:40 StatusPRM_CfgHolder 4617
2022-11-24 13:14:40 StatusPRM_GroupTopic tasmotas
2022-11-24 13:14:40 StatusPRM_OtaUrl http://ota.tasmota.com/tasmota32/release/tasmota32.bin
2022-11-24 13:14:40 StatusPRM_RestartReason Vbat power on reset
2022-11-24 13:14:40 StatusPRM_SaveCount 23
2022-11-24 13:14:40 StatusPRM_SerialConfig 8N1
2022-11-24 13:14:40 StatusPRM_Sleep 50
2022-11-24 13:14:40 StatusPRM_StartupUTC 2022-11-23T18:57:29
2022-11-24 13:14:40 StatusPRM_Uptime 0T17:17:12
2022-11-24 13:14:40 StatusSTS_Berry_HeapUsed 3
2022-11-24 13:14:40 StatusSTS_Berry_Objects 43
2022-11-24 13:14:40 StatusSTS_Heap 78
2022-11-24 13:14:40 StatusSTS_LoadAvg 25
2022-11-24 13:14:40 StatusSTS_MqttCount 1
2022-11-24 13:14:40 StatusSTS_Sleep 50
2022-11-24 13:14:40 StatusSTS_SleepMode Dynamic
2022-11-24 13:14:40 StatusSTS_Time 2022-11-24T13:14:41
2022-11-24 13:14:40 StatusSTS_Uptime 0T17:17:12
2022-11-24 13:14:40 StatusSTS_UptimeSec 62232
2022-11-24 13:14:40 StatusSTS_Wifi_AP 1
2022-11-24 13:14:40 StatusSTS_Wifi_BSSId 7C:FF:4D:EC:69:23
2022-11-24 13:14:40 StatusSTS_Wifi_Channel 6
2022-11-24 13:14:40 StatusSTS_Wifi_Downtime 0T00:00:18
2022-11-24 13:14:40 StatusSTS_Wifi_LinkCount 1
2022-11-24 13:14:40 StatusSTS_Wifi_Mode 11n
2022-11-24 13:14:40 StatusSTS_Wifi_RSSI 38
2022-11-24 13:14:40 StatusSTS_Wifi_SSId 1
2022-11-24 13:14:40 StatusSTS_Wifi_Signal -81
2022-11-24 15:27:32 TempUnit C
2022-11-24 15:27:54 Time 2022-11-24T15:27:54
2022-11-24 15:27:54 Uptime 0T19:30:25
2022-11-24 15:27:54 UptimeSec 70225
2022-11-23 19:57:50 Version 12.2.0(bluetooth)
2022-11-23 19:57:50 WebServerMode Admin
2022-11-24 15:27:54 Wifi_AP 1
2022-11-24 15:27:54 Wifi_BSSId 7C:FF:4D:EC:69:23
2022-11-24 15:27:54 Wifi_Channel 6
2022-11-24 15:27:54 Wifi_Downtime 0T00:00:18
2022-11-24 15:27:54 Wifi_LinkCount 1
2022-11-24 15:27:54 Wifi_Mode 11n
2022-11-24 15:27:54 Wifi_RSSI 40
2022-11-24 15:27:54 Wifi_SSId 1
2022-11-24 15:27:54 Wifi_Signal -80
2022-11-23 19:00:21 associatedWith MQTT2_HomeAssistant
2022-11-23 19:00:09 attrTemplateVersion 20220111
Attributes:
alias TasmotaBLE 2
bridgeRegexp tele/tasmota_38D104/([^/]+)/SENSOR:.* "bt2t_$1"
devStateIcon Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red
icon mqtt
model tasmota_bt2tasmota_bridge
readingList tele/tasmota_38D104/LWT:.* LWT
tele/tasmota_38D104/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ? json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_38D104/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_38D104/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
stat/tasmota_38D104/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
stat/tasmota_38D104/POWER:.* LED
stat/tasmota_38D104/STATUS1:.* { json2nameValue($EVENT) }
stat/tasmota_38D104/STATUS11:.* { json2nameValue($EVENT) }
tele/tasmota_38D104/SENSOR:.* { json2nameValue($EVENT) }
tele/tasmota_38D104/BLE:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setStateList on off
stateFormat LWT
<a href="http://IPAddress" target="_blank">Hostname</a><br>
also ich hätte ganz gern, das die readings mit immer fast identischem namen, die werte für Batterie, Temperatur Luftfeuchte usw. zeilenweise untereinander auflistet". also das es in etwa so aussieht
LYWSD03MMC Battery DewPoint Humidity Temperature
ATCa78a8d 100 12.5 52.8 22.7
ATC1caa7e 100 12.5 usw
ich will auch keine löffelfertige lösung, sondern nur hits in die richtige richtung.
woran ich jetzt scheiter ist der voranstehnde name und die seperation der werte zu den überschriften.
dann sollten auch die unterschiedlichen empfänger, mit in diese readingsgroup und das am besten so, das nicht doppelte sender, zweimal auftauchen.(was durchaus möglich ist, das sich die empfangsbereiche überlagern)
puh doch ganz schön viel auf einmal.
danke gleich mal vorab, ihr seit spitze! ;)
p.s.:im zweitenschritt möchte ich meine presence, über genau diese empfänger weiter verfeinern, per mi band6, aber dazu später mehr.
Keine direkte Antwort, aber ein paar Anmerkungen....:
Es gibt schon was ähnliches für OpenMQTTGateway. Da ist es so aufgebaut, dass am Ende jeder Thermometer (bzw. jedes "gewünschte" BT-Gerät) eine eigene MQTT2_DEVICE-Instanz darstellt.
Auch sowas wie "das IO mit dem (derzeit) besten RSSI-Wert" läßt sich dann ermitteln, weil alle ESP's ihre Daten am Ende im selben Device abladen.
Für zigbee2tasmota gibt es auch eine Ladung attrTemplate. Soweit ich mich entsinne, kann man da (per backlog-Befehl) den ESP so umschalten, dass jedes zigbee-Gerät einen eigenen Topic bekommt. Ich meine, das müßte bei BTLE auch gehen, und dann kann man das obige viel einfacher umsetzen, weil dann die Topic/Payload-Struktur ziemlich ähnlich sein müßte... (Keine Ahnung, was da jetzt eigentlich implementiert wurde, der feature request war jedenfalls der hier: https://github.com/arendst/Tasmota/issues/8902).
Hoffe, das hilft weiter? (Kann die kommenden paar Tage nicht sinnvoll per Tatstatur helfen, bitte ggf. etwas gedulden).
danke vielmals, da waren schon die richtigen ansätze mit dabei.
den OpenMQTTGateway browsertab hab ich noch von gestern offen, aber ich versuchs mal über den tasmota weg. werd mich da mal am zigbee2tasmota attrtemplate orientieren und das umstricken.
der weg ist wohl das einfachste, einzelne devices zu basteln.
war auch schon am überlegen mir perlscripten anzutun, aber das wollte ich eigentlich großzügig umschiffen.
naja ich werd hier weiter berichten, denn ich habe blut geleckt.
********edit*********
du bist bist ein schatz
vorläufiges ergebniss (hab die empfänger zusammengefasst) und danach wieder in einzelne sensor-devices zerlegt
SO ich hau hier mal noch ne antwort dran und überdenke ggf ein neues topic zu stricken.
also ich hab jetzt so wie es aussieht, die (6) sensoren alle über 3 empfänger so in fhem eingebunden das ich damit auch weiter arbeiten kann. allerdings haben sich für mich neue ungereimtheiten eingeschlichen und zu meiner schande hab ich zeitgleich ein ausflug zu homeassitant gemacht, mit dem effekt das ein tasmota discovery dienst mich schier zur verzweiflung gebracht hat.
ursachen und wirkung und der unbandige drang zeitgleich, durch viel neues das leben unnötig schwer zu machen.
ich werde nun die tasmota manual etwas quälen müssen, um zu verifizieren was ich da genau gemacht hab.
nur mal kurz so als info für die allgemeinheit.
in den tasmota BLE images gibt es einen consolenbefehl
MI32Option<x> n Set driver options at runtime
x=0 - 0 -> sends only recently received sensor data, 1 -> aggregates all recent sensors data types
x=1 - 0 -> shows full sensor data at TELEPERIOD, 1 -> disable sensor data at TELEPERIOD
x=2 - 0 -> sensor data only at TELEPERIOD (default and "usual" Tasmota style), 1 -> direct bridging of BLE-data to mqtt-messages
x=4 - 0 -> always display battery info, 1 -> disable "bogus" battery info from LYWSD03MMC and MHOC401
x=5 - 0 -> show all relevant BLE sensors, 1 -> show only sensors with a BLEAlias
x=6 - 0 -> normal sensor message, 1 -> publish on tele/<mi32topic>/<name> 1 sensor on flat JSON (see Mi32Topic), 2 -> same as 1 with sensor name key
den ich mit
MI32Option2 1
und
MI32Option6 2
dazu gebracht hab, mir ein MQTT2 _tasmota_ble device zu generieren. Automatisch waren da nur 3 readings drin, aber das als muster reichte mir, das ganze dort zu bündeln um es später wieder zu separieren.
hier ein list von dem device
Internals:
CID MQTT2_tasmota_ble
DEF MQTT2_tasmota_ble
FUUID 637fbfcf-f33f-5aff-ef42-fdc5a75770ec46c7
IODev MQTT2_Broker
LASTInputDev MQTT2_Broker
MQTT2_Broker_CONN MQTT2_Broker_192.168.1.39_63963
MQTT2_Broker_MSGCNT 9976
MQTT2_Broker_TIME 2022-11-26 08:38:10
MSGCNT 9976
NAME MQTT2_tasmota_ble
NR 201
STATE ???
TYPE MQTT2_DEVICE
eventCount 9976
READINGS:
2022-11-26 08:37:54 ATC1caa7e_Battery 100
2022-11-26 08:37:54 ATC1caa7e_Btn 1
2022-11-26 08:37:54 ATC1caa7e_DewPoint 11.9
2022-11-26 08:37:54 ATC1caa7e_Humidity 56.5
2022-11-26 08:37:54 ATC1caa7e_RSSI -92
2022-11-26 08:37:54 ATC1caa7e_Temperature 20.9
2022-11-26 08:37:54 ATC1caa7e_mac a4c1381caa7e
2022-11-26 08:38:06 ATC21126c_Battery 100
2022-11-26 08:38:06 ATC21126c_Btn 1
2022-11-26 08:38:06 ATC21126c_DewPoint 15.0
2022-11-26 08:38:06 ATC21126c_Humidity 69.2
2022-11-26 08:38:06 ATC21126c_RSSI -82
2022-11-26 08:38:06 ATC21126c_Temperature 20.9
2022-11-26 08:38:06 ATC21126c_mac a4c13821126c
2022-11-26 08:38:01 ATC364197_Battery 98
2022-11-26 08:38:01 ATC364197_Btn 1
2022-11-26 08:38:01 ATC364197_DewPoint 13.0
2022-11-26 08:38:01 ATC364197_Humidity 56.8
2022-11-26 08:38:01 ATC364197_RSSI -87
2022-11-26 08:38:01 ATC364197_Temperature 22.0
2022-11-26 08:38:01 ATC364197_mac a4c138364197
2022-11-26 08:38:10 ATCa78a8d_Battery 96
2022-11-26 08:38:10 ATCa78a8d_Btn 1
2022-11-26 08:38:10 ATCa78a8d_DewPoint 12.0
2022-11-26 08:38:10 ATCa78a8d_Humidity 54.8
2022-11-26 08:38:10 ATCa78a8d_RSSI -94
2022-11-26 08:38:10 ATCa78a8d_Temperature 21.5
2022-11-26 08:38:10 ATCa78a8d_mac a4c138a78a8d
2022-11-26 08:38:09 ATCd41686_Battery 100
2022-11-26 08:38:09 ATCd41686_Btn 1
2022-11-26 08:38:09 ATCd41686_DewPoint 12.1
2022-11-26 08:38:09 ATCd41686_Humidity 56.3
2022-11-26 08:38:09 ATCd41686_RSSI -98
2022-11-26 08:38:09 ATCd41686_Temperature 21.1
2022-11-26 08:38:09 ATCd41686_mac a4c138d41686
2022-11-26 08:38:05 ATCe57cb6_Battery 83
2022-11-26 08:38:05 ATCe57cb6_Btn 1
2022-11-26 08:38:05 ATCe57cb6_DewPoint 13.4
2022-11-26 08:38:05 ATCe57cb6_Humidity 62.5
2022-11-26 08:38:05 ATCe57cb6_RSSI -92
2022-11-26 08:38:05 ATCe57cb6_Temperature 20.8
2022-11-26 08:38:05 ATCe57cb6_mac a4c138e57cb6
2022-11-26 08:38:10 Time 2022-11-26T08:38:09
Attributes:
readingList tele/tasmota_ble/ATCe57cb6:.* { json2nameValue($EVENT) }
tele/tasmota_ble/ATCa78a8d:.* { json2nameValue($EVENT) }
tele/tasmota_ble/ATC21126c:.* { json2nameValue($EVENT) }
tele/tasmota_ble/ATC1caa7e:.* { json2nameValue($EVENT) }
tele/tasmota_ble/ATC364197:.* { json2nameValue($EVENT) }
tele/tasmota_ble/ATCd41686:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
was ich jetzt noch schauen muss ist das ich die signalfrequenz runter bekomm, spamt mir nur mein netz voll.
verstehen warum sporadisch die empfänger alzheimer bekommen.
das ganze mir kopftechnisch zurecht legen um weitere schlüsse zu ziehen.
ggf das wiki pflegen
cu Andy :D
Kurzer zwischenstand und jetzt doch nochmals eine vermutlich dämliche frage.
Zwischenstand:
also den Alzheimer der Tasmota empfänger, nach einem reboot, ist recht schell und einfach erklärt, wie oben in der anleitung zu
MI32Options schon schön drin steht
ZitatSet driver options at runtime
läuft die einstellung nur zur laufzeit. also einmalig bis zum nächsten reboot.
das habe ich durch zwei rule gelöst:
Backlog Rule1 on System#Boot do MI32Option2 1 endon; Rule1 1
Backlog Rule1 on System#Boot do MI32Option6 2 endon; Rule1 1
Nun empfangen meine 3 ESP32 schön brav, alle 300 sekunden, die sender daten und konzentrieren mir das in einem MQTT2 device. ;D
Dämliche frage: :-\
ich wollte wie im wiki steht, mir den batterie status grafisch mit einem symbol anzeigen lassen und scheitere ganz bitter bös an dem regex für die jeweiligen readings.mit ".*Battery"
attr rg_LYWSD03MMC valueFormat {if($READING eq ".*Battery"){if($VALUE>=3){$VALUE=100}elsif($VALUE>=75){$VALUE=75}elsif($VALUE>=50){$VALUE=50}elsif($VALUE>=25){$VALUE=25}else{$VALUE=0}}}
attr rg_LYWSD03MMC valueIcon {'.*Battery.100'=>'measure_battery_100@0CFB0C','.*Battery.75'=>'measure_battery_75@42BC0A','.*Battery.50'=>'measure_battery_50@F5FF10','(.*Battery.25'=>'measure_battery_25@FB5909','.*Battery.0'=>'measure_battery_0@E50005'}
passiert ziemlich genau garnichts. und ordentlich debugt bekomm ichs auch nicht, weil aus den fehlermeldungen im log werd ich nicht schlau. und zwar bräuchte ich jetzt ein regex für den anfang der readingsnamen. (ich wusste das alles schonmal vor 4 jahren, aber anscheinden wer ich nicht nur älter, sondern auch dümmer).
ich kann den fehler, oder das verhalten noch nicht mal brauchbar beschreiben, so das ich über google und die boardsuche nimmer weiter komm.
mir würde wieder ein klapps auf den hinterkopf vermutlisch die augen öffen. ::)
Danke gleichmal vor ab, ihr seid spitze. :)
a) "eq" und ".*" passen nicht so gut zusammen, vielleicht versuchst du es mit "=~ m{.*Battery}x"?
b) Warum baust du kein bridgeRegexp mit "ATC-Präfix"? Dann wären die alle einzeln...
a) ich hatte versucht das (https://wiki.fhem.de/wiki/ReadingsGroup#Heizungsteuerung_f.C3.BCr_HM_Wand-_und_Heizk.C3.B6rperthermostate) auf mein Readingsgroup um zu basteln. aber ich denke in meiner naivität hab ich hier zuviel vermischt. klappt immer noch nicht.
Ist jetzt auch eher firlefanz, da es ja nur um optik geht.
b) weil mir im augenblick, noch meine PTBS das klare denken ver(s)haut. Normalerweise sollte ich das checken, aber mir steht gerade der kopf in alle himmelrichtungen. viel wollen, aber nix hinbekommen, bzw. schon hinbekommen, aber das logische denken, ist im augenblick out of order.
danke für dein tip
Kein Stress bitte!
Wie viel konkreten support brauchst du? (Ich versuch's ausnahmsweise dann auch mundfertig, wenn gewünscht!)
du kein stress. ich muß das selber hinbekommen und es eilt absolut nicht.
das fatale ist ja, ich hab meine abschlußarbeit zum fachinformatiker anno 2005 mit sehr viel regex gemacht. das ist irrgendwie alles weg und ich bekomm echt kopfschmerzen, wenn ich es erzwingen will. das kommt aber ganz sicher wieder, da bin ich ganz zuversichtlich.
OK. Eine Kleinigkeit ist mir noch aufgefallen, neben dem "eq"-Ding. Das hier kann auch nicht richtig sein, das sind Prozent-Werte, keine Volt:
$VALUE>=3
hab ich blind copy paste aus dem wiki übernommen. steig ich wie gesagt selber noch nicht durch.
ich hatte im alten fhem (bin von raspberrypi auf macmini/ubuntu umgezogen) einige beispiele drin.
hab im zuge des umzugs meine ersten gehversuche auf docker gemacht und bin nun an dem punkt auch fhem auf docker zu portieren.
das macht das basteln und dokumentieren/beispiele mir viel einfacher. (so glaube ich zumindest)
der ausflug homeassitant läuft bereits auf docker, bzw. macht da gerade ein päuschen. sind einfach zuviel dinge die ich im augenblick gleichzeitig probiere. und das wiki hier will ich ja auch noch weiter pflegen (da sind noch ein zwei versprechungen offen und der schuh drückt viel mehr)
so aber jetzt ;)
Internals:
DEF <YWSD03MMC>,,<Temperatur>,<Luftfeuchte>,<Taupunkt>,<Signal>,<Battery> ATC.*:Temperature,Humidity,DewPoint,RSSI,batteryPercent
FUUID 637f644e-f33f-5aff-218d-460c41ee2bb17b90
NAME rg_LYWSD03MMC
NR 223
NTFY_ORDER 50-rg_LYWSD03MMC
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
ATC0755a4 1
ATC1caa7e 1
ATC21126c 1
ATC364197 1
ATC3f053e 1
ATC595e99 1
ATC60d980 1
ATCa78a8d 1
ATCd41686 1
ATCe57cb6 1
CONTENT2:
DEVICES:
ARRAY(0x5654339c29b8)
ARRAY(0x565433f23938)
ARRAY(0x5654335e43f8)
ARRAY(0x56543384bbc0)
ARRAY(0x56542c8ed360)
ARRAY(0x565433f1fa20)
ARRAY(0x565433901408)
ARRAY(0x565433f116a8)
ARRAY(0x5654333469b8)
ARRAY(0x5654339e8748)
ARRAY(0x5654335e75d8)
READINGS:
fhem:
lastDefChange 154
last_update 1670250150.75586
helper:
DEF
valueFormat {if($READING eq "batteryPercent"){if($VALUE>=90){$VALUE=100}
elsif($VALUE>=75){$VALUE=75}elsif($VALUE>=50){$VALUE=50}elsif($VALUE>=25){$VALUE=25}
else{$VALUE=0}}}
valueStyle style="text-align:center"
positions:
ATC0755a4.DewPoint 2:3
ATC0755a4.Humidity 2:2
ATC0755a4.RSSI 2:4
ATC0755a4.Temperature 2:1
ATC0755a4.batteryPercent 2:5
ATC1caa7e.DewPoint 3:3
ATC1caa7e.Humidity 3:2
ATC1caa7e.RSSI 3:4
ATC1caa7e.Temperature 3:1
ATC1caa7e.batteryPercent 3:5
ATC21126c.DewPoint 4:3
ATC21126c.Humidity 4:2
ATC21126c.RSSI 4:4
ATC21126c.Temperature 4:1
ATC21126c.batteryPercent 4:5
ATC364197.DewPoint 5:3
ATC364197.Humidity 5:2
ATC364197.RSSI 5:4
ATC364197.Temperature 5:1
ATC364197.batteryPercent 5:5
ATC3f053e.DewPoint 6:3
ATC3f053e.Humidity 6:2
ATC3f053e.RSSI 6:4
ATC3f053e.Temperature 6:1
ATC3f053e.batteryPercent 6:5
ATC595e99.DewPoint 7:3
ATC595e99.Humidity 7:2
ATC595e99.RSSI 7:4
ATC595e99.Temperature 7:1
ATC595e99.batteryPercent 7:5
ATC60d980.DewPoint 8:3
ATC60d980.Humidity 8:2
ATC60d980.RSSI 8:4
ATC60d980.Temperature 8:1
ATC60d980.batteryPercent 8:5
ATCa78a8d.DewPoint 9:3
ATCa78a8d.Humidity 9:2
ATCa78a8d.RSSI 9:4
ATCa78a8d.Temperature 9:1
ATCa78a8d.batteryPercent 9:5
ATCd41686.DewPoint 10:3
ATCd41686.Humidity 10:2
ATCd41686.RSSI 10:4
ATCd41686.Temperature 10:1
ATCd41686.batteryPercent 10:5
ATCe57cb6.DewPoint 11:3
ATCe57cb6.Humidity 11:2
ATCe57cb6.RSSI 11:4
ATCe57cb6.Temperature 11:1
ATCe57cb6.batteryPercent 11:5
valueIcon:
batteryPercent.0 measure_battery_0@E50005
batteryPercent.100 measure_battery_100@0CFB0C
batteryPercent.25 measure_battery_25@FB5909
batteryPercent.50 measure_battery_50@F5FF10
batteryPercent.75 measure_battery_75@42BC0A
values:
formated:
undef
ARRAY(0x5654339012e8)
ARRAY(0x565433972d20)
ARRAY(0x565433f1d4c0)
ARRAY(0x565432f30de8)
ARRAY(0x56543398d2f0)
orig:
undef
ARRAY(0x56543391adf0)
ARRAY(0x56543376ecf0)
ARRAY(0x5654339ad028)
ARRAY(0x56543378a758)
ARRAY(0x565430312758)
prefixsuffix:
undef
ARRAY(0x565433f1d868)
ARRAY(0x5654338adde0)
ARRAY(0x5654335a5978)
ARRAY(0x565433c877b8)
ARRAY(0x56543392e8f0)
Attributes:
group 1_temperaturen
room INFO,Keller
valueFormat {if($READING eq "batteryPercent"){if($VALUE>=90){$VALUE=100}
elsif($VALUE>=75){$VALUE=75}elsif($VALUE>=50){$VALUE=50}elsif($VALUE>=25){$VALUE=25}
else{$VALUE=0}}}
valueIcon {'batteryPercent.100'=>'measure_battery_100@0CFB0C','batteryPercent.75'=>'measure_battery_75@42BC0A',
'batteryPercent.50'=>'measure_battery_50@F5FF10','batteryPercent.25'=>'measure_battery_25@FB5909',
'batteryPercent.0'=>'measure_battery_0@E50005'}
valueStyle style="text-align:center"
Hübsch!
Bin zwar immer noch nicht überzeugt, dass "Temperature" besser ist als "temperature", aber das ist vielleicht auch ein bißchen Geschmackssache iVm. einer gewissen Erfahrung betr. allgemeine Standards ;) .