Hallo zusammen.
Ich würde gerne SmartPusher in Fhem einbinden, Kommunikation findet über MQTT statt, die Verbindung zum Server in FHEM funktioniert aber wie bekomme ich da jetzt Geräte angelegt?
SmartPusher ist eine Schalter leiste mit OLED display basierend auf einem ESP32, Hier der link https://blueforcer.de/produkt/smartpusher-set/ (https://blueforcer.de/produkt/smartpusher-set/)
Hier ist die Kommunikation über MQTT beschrieben
Receive Buttonstates
SmartPusher publish the button states via MQTT to following topics:
[prefix]/button[x]/click
[prefix]/button[x]/double_click
[prefix]/button[x]/long_click
[prefix]/button[x]/push (only in pushmode)
while [prefix] is "SmartPusher" by default and [x] represents the number of the pressed button (1-8)
Control LEDs
If you set the LED Mode to extern youre able to control the LED state of each button by yourself. Topic
[prefix]/button[x]/state
Payload
0 = Off
1 = On
2 = Fade
Brightness
You can set the brightness of your smartpusher. This will control the OLED and button leds.
Topic
[prefix]/brightness
Payload
Number from 0-255. 0 will turn off the oled and button leds.
Render Text
Youre able to send a text to the OLED display to show a response from your Smarthome
Topic
[prefix]/message
Payload
The text you want to render
The Message will scroll vertically if it not fit
Render Image
You can render your own image on the SmartPusher OLED
create a 128x64 image in your favorite photo editor like Photoshop, GIMP, Paint etc. and save it as a .png file. e.g. test.png
Download the png2bin converter and copy your png file to the same directory. open a terminal and use it like
png2bin [source-PNG] [destination-bin]
e.g.
png2bin test.png test.bin
open a webbrowser and navigate to [SmartPusher-IP]/files
Then upload your .bin file to the SmartPusher flash memory
Without a reboot you can show the image by publish to the image topic.
Topic
[prefix]/image
Payload
name of the bin file without extension (e.g. test)
Wie Richte ich jetzt Device ein oder ein Templet??
Hoffe ihr könnt mir helfen
Hi,
hat der MQTT2_SERVER denn schon ein Gerät angelegt?
Oder wie meinst Du das
Zitatdie Verbindung zum Server in FHEM funktioniert
Siehe https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele
Gruß Otto
Nabend,
Nein ein Device würde noch nicht automatisch angelegt, aber in FHEM unter MQTT2_SERVER ist die Verbindung zu sehen zum SmartPusher die steht auf connected.
Danke für die Hilfe
ok ist autocreate denn aktive?
list autocreate
list TYPE=MQTT2_SERVER:FILTER=state=Initialized a:autocreate
Wenn Du im MQTT2_SERVER oben auf show MQTT traffic drückst, siehst Du da Nachrichten von dem Teil?
Ja ist aktiv die zigbee2MQTT device sind auch automatisch angelegt worden.
list autocreate
Internals:
FUUID 631206dd-f33f-b458-de1d-cc7a78e0e7889924
NAME autocreate
NOTIFYDEV global
NR 8
NTFY_ORDER 50-autocreate
STATE active
TYPE autocreate
Attributes:
filelog ./log/%NAME-%Y.log
list TYPE=MQTT2_SERVER:FILTER=state=Initialized a:autocreate
Internals:
CONNECTS 7
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 1883 global
FD 20
FUUID 635388e6-f33f-b458-adfc-569128518d64534f
NAME Fhem_MQTT2_Server
NR 46
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
eventCount 61
stacktrace TcpServer_Close:122 MQTT2_SERVER_Undef:82 MQTT2_SERVER_Define:3950 CallFn:2210 CommandModify:1273 AnalyzeCommand:2802 FW_fC:982 FW_answerCall:608 FW_Read:3950 CallFn:781
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2022-10-26 20:38:19 RETAIN {"zigbee2mqtt/bridge/devices":"[{\u0022definition\u0022:null,\u0022endpoints\u0022:{\u00221\u0022:{\u0022bindings\u0022:[],\u0022clusters\u0022:{\u0022input\u0022:[\u0022genBasic\u0022,\u0022genTime\u0022,\u0022genOta\u0022],\u0022output\u0022:[\u0022genPowerCfg\u0022,\u0022genPollCtrl\u0022,\u0022ssIasZone\u0022]},\u0022configured_reportings\u0022:[],\u0022scenes\u0022:[]},\u0022242\u0022:{\u0022bindings\u0022:[],\u0022clusters\u0022:{\u0022input\u0022:[],\u0022output\u0022:[\u0022greenPower\u0022]},\u0022configured_reportings\u0022:[],\u0022scenes\u0022:[]}},\u0022friendly_name\u0022:\u0022Coordinator\u0022,\u0022ieee_address\u0022:\u00220x00212effff0948e0\u0022,\u0022interview_completed\u0022:true,\u0022interviewing\u0022:false,\u0022network_address\u0022:0,\u0022supported\u0022:false,\u0022type\u0022:\u0022Coordinator\u0022},{\u0022date_code\u0022:\u0022\u0022,\u0022definition\u0022:{\u0022description\u0022:\u0022Door sensor\u0022,\u0022exposes\u0022:[{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the contact is closed (= true) or open (= false)\u0022,\u0022name\u0022:\u0022contact\u0022,\u0022property\u0022:\u0022contact\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:true,\u0022value_on\u0022:false},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the battery of this device is almost empty\u0022,\u0022name\u0022:\u0022battery_low\u0022,\u0022property\u0022:\u0022battery_low\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates whether the device is tampered\u0022,\u0022name\u0022:\u0022tamper\u0022,\u0022property\u0022:\u0022tamper\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Remaining battery in %\u0022,\u0022name\u0022:\u0022battery\u0022,\u0022property\u0022:\u0022battery\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022%\u0022,\u0022value_max\u0022:100,\u0022value_min\u0022:0},{\u0022access\u0022:1,\u0022description\u0022:\u0022Voltage of the battery in millivolts\u0022,\u0022name\u0022:\u0022voltage\u0022,\u0022property\u0022:\u0022voltage\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022mV\u0022},{\u0022access\u0022:1,\u0022description\u0022:\u0022Link quality (signal strength)\u0022,\u0022name\u0022:\u0022linkquality\u0022,\u0022property\u0022:\u0022linkquality\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022lqi\u0022,\u0022value_max\u0022:255,\u0022value_min\u0022:0}],\u0022model\u0022:\u0022TS0203\u0022,\u0022options\u0022:[],\u0022supports_ota\u0022:false,\u0022vendor\u0022:\u0022TuYa\u0022},\u0022endpoints\u0022:{\u00221\u0022:{\u0022bindings\u0022:[{\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022target\u0022:{\u0022endpoint\u0022:1,\u0022ieee_address\u0022:\u00220x00212effff0948e0\u0022,\u0022type\u0022:\u0022endpoint\u0022}}],\u0022clusters\u0022:{\u0022input\u0022:[\u0022genPowerCfg\u0022,\u0022genIdentify\u0022,\u0022ssIasZone\u0022,\u0022genBasic\u0022],\u0022output\u0022:[\u0022genIdentify\u0022,\u0022genGroups\u0022,\u0022genScenes\u0022,\u0022genOnOff\u0022,\u0022genLevelCtrl\u0022,\u0022touchlink\u0022,\u0022genOta\u0022,\u0022genTime\u0022]},\u0022configured_reportings\u0022:[{\u0022attribute\u0022:\u0022batteryPercentageRemaining\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0},{\u0022attribute\u0022:\u0022batteryVoltage\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0}],\u0022scenes\u0022:[]}},\u0022friendly_name\u0022:\u0022Fenster1\u0022,\u0022ieee_address\u0022:\u00220xa4c138e20f7e965f\u0022,\u0022interview_completed\u0022:true,\u0022interviewing\u0022:false,\u0022manufacturer\u0022:\u0022_TZ3000_osu834un\u0022,\u0022model_id\u0022:\u0022TS0203\u0022,\u0022network_address\u0022:40239,\u0022power_source\u0022:\u0022Battery\u0022,\u0022supported\u0022:true,\u0022type\u0022:\u0022EndDevice\u0022},{\u0022date_code\u0022:\u0022\u0022,\u0022definition\u0022:{\u0022description\u0022:\u0022Door sensor\u0022,\u0022exposes\u0022:[{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the contact is closed (= true) or open (= false)\u0022,\u0022name\u0022:\u0022contact\u0022,\u0022property\u0022:\u0022contact\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:true,\u0022value_on\u0022:false},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the battery of this device is almost empty\u0022,\u0022name\u0022:\u0022battery_low\u0022,\u0022property\u0022:\u0022battery_low\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates whether the device is tampered\u0022,\u0022name\u0022:\u0022tamper\u0022,\u0022property\u0022:\u0022tamper\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Remaining battery in %\u0022,\u0022name\u0022:\u0022battery\u0022,\u0022property\u0022:\u0022battery\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022%\u0022,\u0022value_max\u0022:100,\u0022value_min\u0022:0},{\u0022access\u0022:1,\u0022description\u0022:\u0022Voltage of the battery in millivolts\u0022,\u0022name\u0022:\u0022voltage\u0022,\u0022property\u0022:\u0022voltage\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022mV\u0022},{\u0022access\u0022:1,\u0022description\u0022:\u0022Link quality (signal strength)\u0022,\u0022name\u0022:\u0022linkquality\u0022,\u0022property\u0022:\u0022linkquality\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022lqi\u0022,\u0022value_max\u0022:255,\u0022value_min\u0022:0}],\u0022model\u0022:\u0022TS0203\u0022,\u0022options\u0022:[],\u0022supports_ota\u0022:false,\u0022vendor\u0022:\u0022TuYa\u0022},\u0022endpoints\u0022:{\u00221\u0022:{\u0022bindings\u0022:[{\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022target\u0022:{\u0022endpoint\u0022:1,\u0022ieee_address\u0022:\u00220x00212effff0948e0\u0022,\u0022type\u0022:\u0022endpoint\u0022}}],\u0022clusters\u0022:{\u0022input\u0022:[\u0022genPowerCfg\u0022,\u0022genIdentify\u0022,\u0022ssIasZone\u0022,\u0022genBasic\u0022],\u0022output\u0022:[\u0022genIdentify\u0022,\u0022genGroups\u0022,\u0022genScenes\u0022,\u0022genOnOff\u0022,\u0022genLevelCtrl\u0022,\u0022touchlink\u0022,\u0022genOta\u0022,\u0022genTime\u0022]},\u0022configured_reportings\u0022:[{\u0022attribute\u0022:\u0022batteryPercentageRemaining\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0},{\u0022attribute\u0022:\u0022batteryVoltage\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0}],\u0022scenes\u0022:[]}},\u0022friendly_name\u0022:\u0022Fenster2\u0022,\u0022ieee_address\u0022:\u00220xa4c138f754ac6e64\u0022,\u0022interview_completed\u0022:true,\u0022interviewing\u0022:false,\u0022manufacturer\u0022:\u0022_TZ3000_osu834un\u0022,\u0022model_id\u0022:\u0022TS0203\u0022,\u0022network_address\u0022:26003,\u0022power_source\u0022:\u0022Battery\u0022,\u0022supported\u0022:true,\u0022type\u0022:\u0022EndDevice\u0022},{\u0022date_code\u0022:\u0022\u0022,\u0022definition\u0022:{\u0022description\u0022:\u0022Door sensor\u0022,\u0022exposes\u0022:[{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the contact is closed (= true) or open (= false)\u0022,\u0022name\u0022:\u0022contact\u0022,\u0022property\u0022:\u0022contact\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:true,\u0022value_on\u0022:false},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the battery of this device is almost empty\u0022,\u0022name\u0022:\u0022battery_low\u0022,\u0022property\u0022:\u0022battery_low\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates whether the device is tampered\u0022,\u0022name\u0022:\u0022tamper\u0022,\u0022property\u0022:\u0022tamper\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Remaining battery in %\u0022,\u0022name\u0022:\u0022battery\u0022,\u0022property\u0022:\u0022battery\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022%\u0022,\u0022value_max\u0022:100,\u0022value_min\u0022:0},{\u0022access\u0022:1,\u0022description\u0022:\u0022Voltage of the battery in millivolts\u0022,\u0022name\u0022:\u0022voltage\u0022,\u0022property\u0022:\u0022voltage\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022mV\u0022},{\u0022access\u0022:1,\u0022description\u0022:\u0022Link quality (signal strength)\u0022,\u0022name\u0022:\u0022linkquality\u0022,\u0022property\u0022:\u0022linkquality\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022lqi\u0022,\u0022value_max\u0022:255,\u0022value_min\u0022:0}],\u0022model\u0022:\u0022TS0203\u0022,\u0022options\u0022:[],\u0022supports_ota\u0022:false,\u0022vendor\u0022:\u0022TuYa\u0022},\u0022endpoints\u0022:{\u00221\u0022:{\u0022bindings\u0022:[{\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022target\u0022:{\u0022endpoint\u0022:1,\u0022ieee_address\u0022:\u00220x00212effff0948e0\u0022,\u0022type\u0022:\u0022endpoint\u0022}}],\u0022clusters\u0022:{\u0022input\u0022:[\u0022genPowerCfg\u0022,\u0022genIdentify\u0022,\u0022ssIasZone\u0022,\u0022genBasic\u0022],\u0022output\u0022:[\u0022genIdentify\u0022,\u0022genGroups\u0022,\u0022genScenes\u0022,\u0022genOnOff\u0022,\u0022genLevelCtrl\u0022,\u0022touchlink\u0022,\u0022genOta\u0022,\u0022genTime\u0022]},\u0022configured_reportings\u0022:[{\u0022attribute\u0022:\u0022batteryPercentageRemaining\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0},{\u0022attribute\u0022:\u0022batteryVoltage\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0}],\u0022scenes\u0022:[]}},\u0022friendly_name\u0022:\u0022Fenster3\u0022,\u0022ieee_address\u0022:\u00220xa4c138e79681c2b4\u0022,\u0022interview_completed\u0022:true,\u0022interviewing\u0022:false,\u0022manufacturer\u0022:\u0022_TZ3000_osu834un\u0022,\u0022model_id\u0022:\u0022TS0203\u0022,\u0022network_address\u0022:64307,\u0022power_source\u0022:\u0022Battery\u0022,\u0022supported\u0022:true,\u0022type\u0022:\u0022EndDevice\u0022},{\u0022date_code\u0022:\u0022\u0022,\u0022definition\u0022:{\u0022description\u0022:\u0022Door sensor\u0022,\u0022exposes\u0022:[{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the contact is closed (= true) or open (= false)\u0022,\u0022name\u0022:\u0022contact\u0022,\u0022property\u0022:\u0022contact\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:true,\u0022value_on\u0022:false},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the battery of this device is almost empty\u0022,\u0022name\u0022:\u0022battery_low\u0022,\u0022property\u0022:\u0022battery_low\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates whether the device is tampered\u0022,\u0022name\u0022:\u0022tamper\u0022,\u0022property\u0022:\u0022tamper\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Remaining battery in %\u0022,\u0022name\u0022:\u0022battery\u0022,\u0022property\u0022:\u0022battery\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022%\u0022,\u0022value_max\u0022:100,\u0022value_min\u0022:0},{\u0022access\u0022:1,\u0022description\u0022:\u0022Voltage of the battery in millivolts\u0022,\u0022name\u0022:\u0022voltage\u0022,\u0022property\u0022:\u0022voltage\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022mV\u0022},{\u0022access\u0022:1,\u0022description\u0022:\u0022Link quality (signal strength)\u0022,\u0022name\u0022:\u0022linkquality\u0022,\u0022property\u0022:\u0022linkquality\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022lqi\u0022,\u0022value_max\u0022:255,\u0022value_min\u0022:0}],\u0022model\u0022:\u0022TS0203\u0022,\u0022options\u0022:[],\u0022supports_ota\u0022:false,\u0022vendor\u0022:\u0022TuYa\u0022},\u0022endpoints\u0022:{\u00221\u0022:{\u0022bindings\u0022:[{\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022target\u0022:{\u0022endpoint\u0022:1,\u0022ieee_address\u0022:\u00220x00212effff0948e0\u0022,\u0022type\u0022:\u0022endpoint\u0022}}],\u0022clusters\u0022:{\u0022input\u0022:[\u0022genPowerCfg\u0022,\u0022genIdentify\u0022,\u0022ssIasZone\u0022,\u0022genBasic\u0022],\u0022output\u0022:[\u0022genIdentify\u0022,\u0022genGroups\u0022,\u0022genScenes\u0022,\u0022genOnOff\u0022,\u0022genLevelCtrl\u0022,\u0022touchlink\u0022,\u0022genOta\u0022,\u0022genTime\u0022]},\u0022configured_reportings\u0022:[{\u0022attribute\u0022:\u0022batteryPercentageRemaining\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0},{\u0022attribute\u0022:\u0022batteryVoltage\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0}],\u0022scenes\u0022:[]}},\u0022friendly_name\u0022:\u0022Fenster4\u0022,\u0022ieee_address\u0022:\u00220xa4c13882867c9350\u0022,\u0022interview_completed\u0022:true,\u0022interviewing\u0022:false,\u0022manufacturer\u0022:\u0022_TZ3000_osu834un\u0022,\u0022model_id\u0022:\u0022TS0203\u0022,\u0022network_address\u0022:39611,\u0022power_source\u0022:\u0022Battery\u0022,\u0022supported\u0022:true,\u0022type\u0022:\u0022EndDevice\u0022},{\u0022definition\u0022:{\u0022description\u0022:\u0022Door sensor\u0022,\u0022exposes\u0022:[{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the contact is closed (= true) or open (= false)\u0022,\u0022name\u0022:\u0022contact\u0022,\u0022property\u0022:\u0022contact\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:true,\u0022value_on\u0022:false},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates if the battery of this device is almost empty\u0022,\u0022name\u0022:\u0022battery_low\u0022,\u0022property\u0022:\u0022battery_low\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Indicates whether the device is tampered\u0022,\u0022name\u0022:\u0022tamper\u0022,\u0022property\u0022:\u0022tamper\u0022,\u0022type\u0022:\u0022binary\u0022,\u0022value_off\u0022:false,\u0022value_on\u0022:true},{\u0022access\u0022:1,\u0022description\u0022:\u0022Remaining battery in %\u0022,\u0022name\u0022:\u0022battery\u0022,\u0022property\u0022:\u0022battery\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022%\u0022,\u0022value_max\u0022:100,\u0022value_min\u0022:0},{\u0022access\u0022:1,\u0022description\u0022:\u0022Voltage of the battery in millivolts\u0022,\u0022name\u0022:\u0022voltage\u0022,\u0022property\u0022:\u0022voltage\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022mV\u0022},{\u0022access\u0022:1,\u0022description\u0022:\u0022Link quality (signal strength)\u0022,\u0022name\u0022:\u0022linkquality\u0022,\u0022property\u0022:\u0022linkquality\u0022,\u0022type\u0022:\u0022numeric\u0022,\u0022unit\u0022:\u0022lqi\u0022,\u0022value_max\u0022:255,\u0022value_min\u0022:0}],\u0022model\u0022:\u0022TS0203\u0022,\u0022options\u0022:[],\u0022supports_ota\u0022:false,\u0022vendor\u0022:\u0022TuYa\u0022},\u0022endpoints\u0022:{\u00221\u0022:{\u0022bindings\u0022:[{\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022target\u0022:{\u0022endpoint\u0022:1,\u0022ieee_address\u0022:\u00220x00212effff0948e0\u0022,\u0022type\u0022:\u0022endpoint\u0022}}],\u0022clusters\u0022:{\u0022input\u0022:[\u0022genPowerCfg\u0022,\u0022genIdentify\u0022,\u0022ssIasZone\u0022,\u0022genBasic\u0022],\u0022output\u0022:[\u0022genIdentify\u0022,\u0022genGroups\u0022,\u0022genScenes\u0022,\u0022genOnOff\u0022,\u0022genLevelCtrl\u0022,\u0022touchlink\u0022,\u0022genOta\u0022,\u0022genTime\u0022]},\u0022configured_reportings\u0022:[{\u0022attribute\u0022:\u0022batteryPercentageRemaining\u0022,\u0022cluster\u0022:\u0022genPowerCfg\u0022,\u0022maximum_report_interval\u0022:62000,\u0022minimum_report_interval\u0022:3600,\u0022reportable_change\u0022:0}],\u0022scenes\u0022:[]}},\u0022friendly_name\u0022:\u0022Tuere\u0022,\u0022ieee_address\u0022:\u00220xa4c138b24e873fb2\u0022,\u0022interview_completed\u0022:true,\u0022interviewing\u0022:false,\u0022manufacturer\u0022:\u0022_TZ3000_osu834un\u0022,\u0022model_id\u0022:\u0022TS0203\u0022,\u0022network_address\u0022:35383,\u0022power_source\u0022:\u0022Battery\u0022,\u0022supported\u0022:true,\u0022type\u0022:\u0022EndDevice\u0022}]"}
2022-10-26 22:17:21 nrclients 2
2022-10-26 20:33:34 state Initialized
clients:
Fhem_MQTT2_Server_192.168.2.148_52846 1
Fhem_MQTT2_Server_192.168.2.160_64138 1
retain:
zigbee2mqtt/bridge/devices:
ts 1666809499.70886
val [{"definition":null,"endpoints":{"1":{"bindings":[],"clusters":{"input":["genBasic","genTime","genOta"],"output":["genPowerCfg","genPollCtrl","ssIasZone"]},"configured_reportings":[],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Coordinator","ieee_address":"0x00212effff0948e0","interview_completed":true,"interviewing":false,"network_address":0,"supported":false,"type":"Coordinator"},{"date_code":"","definition":{"description":"Door sensor","exposes":[{"access":1,"description":"Indicates if the contact is closed (= true) or open (= false)","name":"contact","property":"contact","type":"binary","value_off":true,"value_on":false},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates whether the device is tampered","name":"tamper","property":"tamper","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS0203","options":[],"supports_ota":false,"vendor":"TuYa"},"endpoints":{"1":{"bindings":[{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00212effff0948e0","type":"endpoint"}}],"clusters":{"input":["genPowerCfg","genIdentify","ssIasZone","genBasic"],"output":["genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","touchlink","genOta","genTime"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0},{"attribute":"batteryVoltage","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0}],"scenes":[]}},"friendly_name":"Fenster1","ieee_address":"0xa4c138e20f7e965f","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_osu834un","model_id":"TS0203","network_address":40239,"power_source":"Battery","supported":true,"type":"EndDevice"},{"date_code":"","definition":{"description":"Door sensor","exposes":[{"access":1,"description":"Indicates if the contact is closed (= true) or open (= false)","name":"contact","property":"contact","type":"binary","value_off":true,"value_on":false},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates whether the device is tampered","name":"tamper","property":"tamper","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS0203","options":[],"supports_ota":false,"vendor":"TuYa"},"endpoints":{"1":{"bindings":[{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00212effff0948e0","type":"endpoint"}}],"clusters":{"input":["genPowerCfg","genIdentify","ssIasZone","genBasic"],"output":["genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","touchlink","genOta","genTime"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0},{"attribute":"batteryVoltage","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0}],"scenes":[]}},"friendly_name":"Fenster2","ieee_address":"0xa4c138f754ac6e64","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_osu834un","model_id":"TS0203","network_address":26003,"power_source":"Battery","supported":true,"type":"EndDevice"},{"date_code":"","definition":{"description":"Door sensor","exposes":[{"access":1,"description":"Indicates if the contact is closed (= true) or open (= false)","name":"contact","property":"contact","type":"binary","value_off":true,"value_on":false},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates whether the device is tampered","name":"tamper","property":"tamper","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS0203","options":[],"supports_ota":false,"vendor":"TuYa"},"endpoints":{"1":{"bindings":[{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00212effff0948e0","type":"endpoint"}}],"clusters":{"input":["genPowerCfg","genIdentify","ssIasZone","genBasic"],"output":["genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","touchlink","genOta","genTime"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0},{"attribute":"batteryVoltage","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0}],"scenes":[]}},"friendly_name":"Fenster3","ieee_address":"0xa4c138e79681c2b4","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_osu834un","model_id":"TS0203","network_address":64307,"power_source":"Battery","supported":true,"type":"EndDevice"},{"date_code":"","definition":{"description":"Door sensor","exposes":[{"access":1,"description":"Indicates if the contact is closed (= true) or open (= false)","name":"contact","property":"contact","type":"binary","value_off":true,"value_on":false},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates whether the device is tampered","name":"tamper","property":"tamper","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS0203","options":[],"supports_ota":false,"vendor":"TuYa"},"endpoints":{"1":{"bindings":[{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00212effff0948e0","type":"endpoint"}}],"clusters":{"input":["genPowerCfg","genIdentify","ssIasZone","genBasic"],"output":["genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","touchlink","genOta","genTime"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0},{"attribute":"batteryVoltage","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0}],"scenes":[]}},"friendly_name":"Fenster4","ieee_address":"0xa4c13882867c9350","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_osu834un","model_id":"TS0203","network_address":39611,"power_source":"Battery","supported":true,"type":"EndDevice"},{"definition":{"description":"Door sensor","exposes":[{"access":1,"description":"Indicates if the contact is closed (= true) or open (= false)","name":"contact","property":"contact","type":"binary","value_off":true,"value_on":false},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates whether the device is tampered","name":"tamper","property":"tamper","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS0203","options":[],"supports_ota":false,"vendor":"TuYa"},"endpoints":{"1":{"bindings":[{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00212effff0948e0","type":"endpoint"}}],"clusters":{"input":["genPowerCfg","genIdentify","ssIasZone","genBasic"],"output":["genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","touchlink","genOta","genTime"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0}],"scenes":[]}},"friendly_name":"Tuere","ieee_address":"0xa4c138b24e873fb2","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_osu834un","model_id":"TS0203","network_address":35383,"power_source":"Battery","supported":true,"type":"EndDevice"}]
Attributes:
autocreate simple
room System
P.s. die 192.168.2.160 ist Smartpusher
Die 192.168.2.148 ist mein Smartphone
Hast Du den Smartpusher mal neu gestartet ?
Ja mehrfach
Anbei die Konfigurationsseite vom SmartPusher
Noch ein Screenshot von der Verbindung zum MQTT SERVER in FHEM
naja scheinbar verbindet der sich nur und sendet nichts? Weigert er sich aus Sicherheitsgründen weil es ohne Username Password erfolgen soll? Nur so eine Idee..
Ansonsten bin ich ratlos.
Ich Frage Grade über Discord, aber FHEM ist da oldscool und es nützt keiner mehr.
Device ist angelegt, das Problem war das das Präfix große Buchstaben hatte.
Hier ein list vom MQTT_Devise smartpusher
CFGFN
CID smartpusher
DEF smartpusher
FUUID 635a1eb7-f33f-b458-a072-0248cfc8556921c9
Fhem_MQTT2_Server_CONN Fhem_MQTT2_Server_192.168.2.160_62221
Fhem_MQTT2_Server_MSGCNT 82
Fhem_MQTT2_Server_TIME 2022-10-27 08:10:57
IODev Fhem_MQTT2_Server
LASTInputDev Fhem_MQTT2_Server
MSGCNT 82
NAME MQTT2_smartpusher
NR 4523
STATE ???
TYPE MQTT2_DEVICE
eventCount 114
READINGS:
2022-10-27 08:01:27 IODev Fhem_MQTT2_Server
2022-10-27 08:05:19 click false
2022-10-27 08:05:19 double_click false
2022-10-27 08:10:37 long_click false
2022-10-27 08:10:57 push false
2022-10-27 08:01:27 subscriptions smartpusher/brightness smartpusher/button1/state smartpusher/button2/state smartpusher/button3/state smartpusher/button4/state smartpusher/button5/state smartpusher/button6/state smartpusher/button7/state smartpusher/button8/state smartpusher/image smartpusher/message
Attributes:
readingList smartpusher:smartpusher/button1/click:.* click
smartpusher:smartpusher/button1/double_click:.* double_click
smartpusher:smartpusher/button1/long_click:.* long_click
smartpusher:smartpusher/button1/push:.* push
smartpusher:smartpusher/button2/click:.* click
smartpusher:smartpusher/button2/double_click:.* double_click
smartpusher:smartpusher/button2/long_click:.* long_click
smartpusher:smartpusher/button2/push:.* push
smartpusher:smartpusher/button3/click:.* click
smartpusher:smartpusher/button3/double_click:.* double_click
smartpusher:smartpusher/button3/long_click:.* long_click
smartpusher:smartpusher/button3/push:.* push
smartpusher:smartpusher/button4/click:.* click
smartpusher:smartpusher/button4/double_click:.* double_click
smartpusher:smartpusher/button4/long_click:.* long_click
smartpusher:smartpusher/button4/push:.* push
smartpusher:smartpusher/button5/click:.* click
smartpusher:smartpusher/button5/double_click:.* double_click
smartpusher:smartpusher/button5/long_click:.* long_click
smartpusher:smartpusher/button5/push:.* push
smartpusher:smartpusher/button6/click:.* click
smartpusher:smartpusher/button6/double_click:.* double_click
smartpusher:smartpusher/button6/long_click:.* long_click
smartpusher:smartpusher/button6/push:.* push
smartpusher:smartpusher/button7/click:.* click
smartpusher:smartpusher/button7/double_click:.* double_click
smartpusher:smartpusher/button7/long_click:.* long_click
smartpusher:smartpusher/button7/push:.* push
smartpusher:smartpusher/button8/click:.* click
smartpusher:smartpusher/button8/double_click:.* double_click
smartpusher:smartpusher/button8/long_click:.* long_click
smartpusher:smartpusher/button8/push:.* push
room MQTT2_DEVICE
Wie mache ich daraus jetzt die 8 Taster und das OLED display?
Wobei die Taster wohl clich, dubbel click und long click senden.
Danke für die hilfe
So habe es geschafft das ich jetzt von jedem Button die 4 Readings bekomme, click, dubbel click, long click, und Push.
Internals:
CFGFN
CID smartpusher
DEF smartpusher
FUUID 635a1eb7-f33f-b458-a072-0248cfc8556921c9
Fhem_MQTT2_Server_CONN Fhem_MQTT2_Server_192.168.2.160_62221
Fhem_MQTT2_Server_MSGCNT 328
Fhem_MQTT2_Server_TIME 2022-10-27 08:48:45
IODev Fhem_MQTT2_Server
LASTInputDev Fhem_MQTT2_Server
MSGCNT 328
NAME MQTT2_smartpusher
NR 4523
STATE ???
TYPE MQTT2_DEVICE
eventCount 360
OLDREADINGS:
READINGS:
2022-10-27 08:41:29 click1 false
2022-10-27 08:47:24 click2 false
2022-10-27 08:47:28 click3 false
2022-10-27 08:47:43 click4 false
2022-10-27 08:47:39 click5 false
2022-10-27 08:47:51 click6 false
2022-10-27 08:46:25 click7 false
2022-10-27 08:46:51 click8 false
2022-10-27 08:41:24 double_click1 false
2022-10-27 08:44:35 double_click2 false
2022-10-27 08:45:45 double_click3 false
2022-10-27 08:45:56 double_click4 false
2022-10-27 08:46:03 double_click5 false
2022-10-27 08:46:12 double_click6 false
2022-10-27 08:46:26 double_click7 false
2022-10-27 08:46:50 double_click8 false
2022-10-27 08:41:27 long_click1 false
2022-10-27 08:44:27 long_click2 false
2022-10-27 08:45:47 long_click3 false
2022-10-27 08:45:53 long_click4 false
2022-10-27 08:46:06 long_click5 false
2022-10-27 08:46:18 long_click6 false
2022-10-27 08:46:39 long_click7 false
2022-10-27 08:46:53 long_click8 false
2022-10-27 08:48:45 push2 false
2022-10-27 08:48:26 push3 false
2022-10-27 08:48:27 push4 false
2022-10-27 08:48:28 push5 false
2022-10-27 08:48:29 push6 false
2022-10-27 08:48:31 push7 false
2022-10-27 08:48:32 push8 false
Attributes:
readingList smartpusher:smartpusher/button1/click:.* click1
smartpusher:smartpusher/button1/double_click:.* double_click1
smartpusher:smartpusher/button1/long_click:.* long_click1
smartpusher:smartpusher/button1/push:.* push1
smartpusher:smartpusher/button2/click:.* click2
smartpusher:smartpusher/button2/double_click:.* double_click2
smartpusher:smartpusher/button2/long_click:.* long_click2
smartpusher:smartpusher/button2/push:.* push2
smartpusher:smartpusher/button3/click:.* click3
smartpusher:smartpusher/button3/double_click:.* double_click3
smartpusher:smartpusher/button3/long_click:.* long_click3
smartpusher:smartpusher/button3/push:.* push3
smartpusher:smartpusher/button4/click:.* click4
smartpusher:smartpusher/button4/double_click:.* double_click4
smartpusher:smartpusher/button4/long_click:.* long_click4
smartpusher:smartpusher/button4/push:.* push4
smartpusher:smartpusher/button5/click:.* click5
smartpusher:smartpusher/button5/double_click:.* double_click5
smartpusher:smartpusher/button5/long_click:.* long_click5
smartpusher:smartpusher/button5/push:.* push5
smartpusher:smartpusher/button6/click:.* click6
smartpusher:smartpusher/button6/double_click:.* double_click6
smartpusher:smartpusher/button6/long_click:.* long_click6
smartpusher:smartpusher/button6/push:.* push6
smartpusher:smartpusher/button7/click:.* click7
smartpusher:smartpusher/button7/double_click:.* double_click7
smartpusher:smartpusher/button7/long_click:.* long_click7
smartpusher:smartpusher/button7/push:.* push7
smartpusher:smartpusher/button8/click:.* click8
smartpusher:smartpusher/button8/double_click:.* double_click8
smartpusher:smartpusher/button8/long_click:.* long_click8
smartpusher:smartpusher/button8/push:.* push8
room MQTT2_DEVICE
Jetzt noch die LED's an den Tastern und das Display,
Dazu gibt es diese Infos:
Control LEDs
If you set the LED Mode to extern youre able to control the LED state of each button by yourself. Topic
[prefix]/button[x]/state
Payload
0 = Off
1 = On
2 = Fade
Brightness
You can set the brightness of your smartpusher. This will control the OLED and button leds.
Topic
[prefix]/brightness
Payload
Number from 0-255. 0 will turn off the oled and button leds.
Render Text
Youre able to send a text to the OLED display to show a response from your Smarthome
Topic
[prefix]/message
Payload
The text you want to render
The Message will scroll vertically if it not fit
Render Image
You can render your own image on the SmartPusher OLED
create a 128x64 image in your favorite photo editor like Photoshop, GIMP, Paint etc. and save it as a .png file. e.g. test.png
Download the png2bin converter and copy your png file to the same directory. open a terminal and use it like
png2bin [source-PNG] [destination-bin]
e.g.
png2bin test.png test.bin
open a webbrowser and navigate to [SmartPusher-IP]/files
Then upload your .bin file to the SmartPusher flash memory
Without a reboot you can show the image by publish to the image topic.
Topic
[prefix]/image
Payload
name of the bin file without extension (e.g. test)
So das schalten der LED's pro Button habe ich auch hin bekommen. Geht bestimmt auch eleganter, sowohl reading list als auch Setlist.
Aber jetzt kommt noch die Helligkeitssteuerung von den LED und dem Display, dafür hätte ich gerne einen slider
dim smartpusher/brightness:slider,0,10,255
Laut Doku sieht die Ansteuerung so aus
[prefix]/brightness
Payload
Number from 0-255. 0 will turn off the oled and button leds.
Moin,
ich habe noch kein setList von Dir gesehen, aber so in der Art:
dim:slider,0,10,255 smartpusher/brightness $EVTPART1
sendText:textField smartpusher/message $EVTPART1
usw.
Das mit den Großbuchstaben im topic als Problem mag ich nicht glauben.
Insgesamt ist es jetzt ein spezielles mqtt Thema, was Du eventuell in diesen Forenbereich verschieben solltest. Da lesen ein paar andere Leute mit.
Gruß Otto
Zitat von: Tueftler1983 am 27 Oktober 2022, 08:15:43
Device ist angelegt, das Problem war das das Präfix große Buchstaben hatte.
Ich würde da gerne widersprechen:
Dieser Befehl
mosquitto_pub -h 192.168.56.83 -i SmartPusher -t SmartPusher/raspib/temperature -m 22 -u xxx -P xxx
Erzeugt sofort ein entsprechendes Gerät.
defmod MQTT2_SmartPusher MQTT2_DEVICE SmartPusher
attr MQTT2_SmartPusher readingList SmartPusher:SmartPusher/raspib/temperature:.* temperature
attr MQTT2_SmartPusher room MQTT2_DEVICE
Zitat von: Otto123 am 27 Oktober 2022, 10:01:24
Insgesamt ist es jetzt ein spezielles mqtt Thema, was Du eventuell in diesen Forenbereich verschieben solltest. Da lesen ein paar andere Leute mit.
Falls du jemand spezielles meinst...
Ich kann Äußerungen wie die nicht wirklich nachvollziehen und halte mich daher zurück:
Zitat von: Tueftler1983 am 26 Oktober 2022, 23:01:44
Ich Frage Grade über Discord, aber FHEM ist da oldscool und es nützt keiner mehr.
Auch wenn es vielleicht "moderner" erscheinen mag, irgendwie eine Art persönlicher Betreuung zu bekommen (oder was auch immer erwartet wird?), es ist doch einfacher, wenn man solche Fragen durchsuchbar in aller Öffentlichkeit diskutiert.
Meine 2ct:
Es gibt eine große Nähe der Fragen hier zu https://forum.fhem.de/index.php/topic,129896.0.html (https://forum.fhem.de/index.php/topic,129896.0.html).
Und "Schritt für Schritt" im Wiki wäre vielleicht auch einen Blick wert.
Nachtrag: Es würde m.E. Sinn machen, die Button-Events pro Button zusammenzufassen. Also "wildcard"-readingList mit topic-Auswertung und "freihändigem Zusammenbau" des Rückgabe-Hashes.
Also das gerät in Fhem wurde erst angelegt als ich im SmartPuscher das Präfix von SmartPusher zu smartpuscher geändert habe.
Das Setlist sieht so aus:
1off smartpusher/button1/state 0
1on smartpusher/button1/state 1
1fade smartpusher/button1/state 2
2off smartpusher/button2/state 0
2on smartpusher/button2/state 1
2fade smartpusher/button2/state 2
3off smartpusher/button3/state 0
3on smartpusher/button3/state 1
3fade smartpusher/button3/state 2
4off smartpusher/button4/state 0
4on smartpusher/button4/state 1
4fade smartpusher/button4/state 2
5off smartpusher/button5/state 0
5on smartpusher/button5/state 1
5fade smartpusher/button5/state 2
6off smartpusher/button6/state 0
6on smartpusher/button6/state 1
6fade smartpusher/button6/state 2
7off smartpusher/button7/state 0
7on smartpusher/button7/state 1
7fade smartpusher/button7/state 2
8off smartpusher/button8/state 0
8on smartpusher/button8/state 1
8fade smartpusher/button8/state 2
Zitat von: Beta-User am 27 Oktober 2022, 10:40:13
Ich kann Äußerungen wie die nicht wirklich nachvollziehen und halte mich daher zurück:Auch wenn es vielleicht "moderner" erscheinen mag, irgendwie eine Art persönlicher Betreuung zu bekommen (oder was auch immer erwartet wird?), es ist doch einfacher, wenn man solche Fragen durchsuchbar in aller Öffentlichkeit diskutiert.
Du hast ja Recht ich habe den Ersteller des SmartPushers nur gefragt ob er ne Idee hat warum ich in Fhem keine Tropics bekomme.
Zitat von: Beta-User am 27 Oktober 2022, 10:40:13
Es würde m.E. Sinn machen, die Button-Events pro Button zusammenzufassen. Also "wildcard"-readingList mit topic-Auswertung und "freihändigem Zusammenbau" des Rückgabe-Hashes.
Sorry bin froh daß ich es soweit bis jetzt am laufen habe also teilweise,:
Zitat von: Tueftler1983 am 27 Oktober 2022, 12:06:13
ich habe den Ersteller des SmartPushers nur gefragt ob er ne Idee hat warum ich in Fhem keine Tropics bekomme.
Ach so herum war das gemeint gewesen.
Zitat
Sorry bin froh daß ich es soweit bis jetzt am laufen habe also teilweise,:
Na ja, dann hier mal der ungetestete Versuch einer readingList-Zeile, die alle button-Topics erschlagen sollte:
smartpusher/button./.+:.* { $TOPIC =~ m,smartpusher/button(.)/(.+),; my $onoff = $EVENT eq 'true' ? 'on' : 'off'; my $ret->{button_$1} = "$2 $onoff"; return $ret}
Zitat von: Tueftler1983 am 27 Oktober 2022, 11:08:26
Also das gerät in Fhem wurde erst angelegt als ich im SmartPuscher das Präfix von SmartPusher zu smartpuscher geändert habe.
Das Setlist sieht so aus:
Das muss an etwas anderem gelegen haben, aber egal: funktioniert denn mein setList Vorschlag?
Zitat von: Otto123 am 27 Oktober 2022, 12:52:36
Das muss an etwas anderem gelegen haben, aber egal: funktioniert denn mein setList Vorschlag?
Ja set funktioniert soweit, mit dem dimmen nur die Text Ausgabe könnte ich noch nicht testen das OLED Display das ich hier habe ist defekt.
Zitat von: Beta-User am 27 Oktober 2022, 12:35:19
Na ja, dann hier mal der ungetestete Versuch einer readingList-Zeile, die alle button-Topics erschlagen sollte:
smartpusher/button./.+:.* { $TOPIC =~ m,smartpusher/button(.)/(.+),; my $onoff = $EVENT eq 'true' ? 'on' : 'off'; my $ret->{button_$1} = "$2 $onoff"; return $ret}
Leider keine Reaktion im device, egal welchen Knopf ich drücke
Zitat von: Tueftler1983 am 27 Oktober 2022, 12:55:47
Leider keine Reaktion im device, egal welchen Knopf ich drücke
Im Log wäre ein Ansatz zu finden gewesen. Das hier klappt hoffentlich auch bei dir:
smartpusher/button./.*:.* { $TOPIC =~ m,smartpusher/button(.)/(.+),; my $onoff = $EVENT eq 'true' ? 'on' : 'off'; my $ret->{"button_$1"} = "$2 $onoff"; return $ret}
noch ein erster Ansatz zur Verkürzung der setList:
off:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 0
on:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 1
fade:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 2
Zitat von: Beta-User am 27 Oktober 2022, 13:20:15
Im Log wäre ein Ansatz zu finden gewesen. Das hier klappt hoffentlich auch bei dir:
smartpusher/button./.*:.* { $TOPIC =~ m,smartpusher/button(.)/(.+),; my $onoff = $EVENT eq 'true' ? 'on' : 'off'; my $ret->{"button_$1"} = "$2 $onoff"; return $ret}
Leider auch da nicht das gewünschte Ergebnis, es wird ein neues Reading
button_
angelegt das beim drücken egal welches Tasters zwischen on und off wechselt. Auch Doppel click oder langes drücken hat nur die selbe Ausgabe.
Dazu das Log
2022.10.27 13:35:42 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at (eval 28467) line 1.
2022.10.27 13:35:42 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
2022.10.27 13:35:42 1: PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at (eval 28468) line 1.
2022.10.27 13:35:42 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
2022.10.27 13:35:42 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at (eval 28468) line 1.
2022.10.27 13:35:42 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
2022.10.27 13:35:48 1: PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at (eval 28469) line 1.
2022.10.27 13:35:48 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
Zitat von: Otto123 am 27 Oktober 2022, 13:23:02
noch ein erster Ansatz zur Verkürzung der setList:
off:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 0
on:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 1
fade:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 2
Das funktioniert so
Zitat von: Tueftler1983 am 27 Oktober 2022, 13:41:19
Leider auch da nicht das gewünschte Ergebnis, es wird ein neues Reading button_
angelegt das beim drücken egal welches Tasters zwischen on und off wechselt. Auch Doppel click oder langes drücken hat nur die selbe Ausgabe.
Dazu das Log
2022.10.27 13:35:42 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at (eval 28467) line 1.
2022.10.27 13:35:42 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
2022.10.27 13:35:42 1: PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at (eval 28468) line 1.
2022.10.27 13:35:42 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
2022.10.27 13:35:42 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at (eval 28468) line 1.
2022.10.27 13:35:42 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
2022.10.27 13:35:48 1: PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at (eval 28469) line 1.
2022.10.27 13:35:48 3: eval: my $CID= $evalSpecials->{'%CID'};my $DEVICETOPIC= $evalSpecials->{'%DEVICETOPIC'};my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $JSONMAP= $evalSpecials->{'%JSONMAP'};my $NAME= $evalSpecials->{'%NAME'};my $TOPIC= $evalSpecials->{'%TOPIC'};{ $TOPIC =~ m,smartpusher:smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}
Wirf bitte die CID aus der readingList! (das vor dem Doppelpunkt einschl. Doppelpunkt). Das war nicht mein Vorschlag, das drin zu lassen!
Zitat von: Beta-User am 27 Oktober 2022, 13:50:24
Wirf bitte die CID aus der readingList! (das vor dem Doppelpunkt einschl. Doppelpunkt). Das war nicht mein Vorschlag, das drin zu lassen!
Sorry hatte es drin weil es nicht funktionierte und ich das Mal getestet hatte, aber Fehler war ein anderer, Strom war aus...
Jetzt läuft es und sieht besser aus...
Vielen lieben dank
Kann man daraus nicht ein Template machen falls nochmal jemand einen Smartpuscher einbinden will? Finde das Teil nicht schlecht
Dann warte ich mal auf einen attrTemplate-Vorschlag von deiner Seite, dann checke ich das gerne ein...
(Vielleicht noch etwas zuwarten, bis etwas mehr Erfahrung da ist, auch mit der Frage, wie man das wann ansteuert bzw. die Infos nutzt?)
Hehe, template muss ich .ich Mal einlesen, bin Grade dabei für jeden Taster ein Dev state icon zu machen und in der Reihe darunter für jede Led den Zustand. Das ist aber auch eine Baustelle die f8mich nicht zu unterschätzen ist.
Da 8 Taster mit jeweils 3 zuständen genau genommen 6 aber denke 3 reichen da aus.
Und 8 LED mit jeweils 3 zuständen.
Hey zusammen,
Dank euch bin ich ja schon ein ganzes stück weiter...
ich habe nun für jeden Taster nen DevStateIcon der mir anzeigt ob click, double_click oder long_click sowohl on als auch off, wobei on eig überflüssig ist da der immer nur kurz on hat.
aber wie kann ich jetzt die statis der 8 led anzeigen? dafür habe ich ja kein reading auf das ich zurück greifen kann. gibts da ne möglichkeit??
Z.b bei Setlist mit dem Set für MQTT noch ein setreading setzen, sodass ich auch jeweils ein Reading für jede LED habe so in etwa
off:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 0;setreading MQTT2_smartpusher led$EVTPART1/state 0
wie ich das dann in ne zweite reihe als DevStateVicon bekomme weiß ich.
hoffe ihr versteht was ich vor habe.
hier noch ein list von Device und ein screenshot
Internals:
CFGFN
CID smartpusher
DEF smartpusher
FUUID 635a1eb7-f33f-b458-a072-0248cfc8556921c9
Fhem_MQTT2_Server_CONN Fhem_MQTT2_Server_192.168.2.160_50199
Fhem_MQTT2_Server_MSGCNT 1482
Fhem_MQTT2_Server_TIME 2022-10-29 17:05:58
IODev Fhem_MQTT2_Server
LASTInputDev Fhem_MQTT2_Server
MSGCNT 1482
NAME MQTT2_smartpusher
NR 4523
STATE 1:double_click off
2:long_click off
3:click off
4:double_click off
5:long_click off
6:click off
7:double_click off
8:long_click off
TYPE MQTT2_DEVICE
eventCount 1497
OLDREADINGS:
READINGS:
2022-10-29 17:05:22 button_1 double_click off
2022-10-29 17:05:24 button_2 long_click off
2022-10-29 17:03:15 button_3 click off
2022-10-29 17:05:33 button_4 double_click off
2022-10-29 17:05:29 button_5 long_click off
2022-10-29 17:05:53 button_6 click off
2022-10-29 17:05:55 button_7 double_click off
2022-10-29 17:05:58 button_8 long_click off
2022-10-29 17:30:55 state on
Attributes:
devStateIcon 1.click.on:tradfri_dimmerswitch@green 1.click.off:tradfri_dimmerswitch@red
1.double_click.on:control_standby@green
1.double_click.off:control_standby@red
1.long_click.on:clock@green
1.long_click.off:clock@red
2.click.on:tradfri_dimmerswitch@green 2.click.off:tradfri_dimmerswitch@red
2.double_click.on:control_standby@green
2.double_click.off:control_standby@red
2.long_click.on:clock@green
2.long_click.off:clock@red
3.click.on:tradfri_dimmerswitch@green 3.click.off:tradfri_dimmerswitch@red
3.double_click.on:control_standby@green
3.double_click.off:control_standby@red
3.long_click.on:clock@green
3.long_click.off:clock@red
4.click.on:tradfri_dimmerswitch@green 4.click.off:tradfri_dimmerswitch@red
4.double_click.on:control_standby@green
4.double_click.off:control_standby@red
4.long_click.on:clock@green
4.long_click.off:clock@red
5.click.on:tradfri_dimmerswitch@green 5.click.off:tradfri_dimmerswitch@red
5.double_click.on:control_standby@green
5.double_click.off:control_standby@red
5.long_click.on:clock@green
5.long_click.off:clock@red
6.click.on:tradfri_dimmerswitch@green 6.click.off:tradfri_dimmerswitch@red
6.double_click.on:control_standby@green
6.double_click.off:control_standby@red
6.long_click.on:clock@green
6.long_click.off:clock@red
7.click.on:tradfri_dimmerswitch@green7.click.off:tradfri_dimmerswitch@red
7.double_click.on:control_standby@green
7.double_click.off:control_standby@red
7.long_click.on:clock@green
7.long_click.off:clock@red
8.click.on:tradfri_dimmerswitch@green 8.click.off:tradfri_dimmerswitch@red
8.double_click.on:control_standby@green
8.double_click.off:control_standby@red
8.long_click.on:clock@green
8.long_click.off:clock@red
readingList smartpusher/button./.*:.* { $TOPIC =~ m,smartpusher/button(.)/(.+),; my $onoff = $EVENT eq 'true' ? 'on' : 'off'; my $ret->{"button_$1"} = "$2 $onoff"; return $ret}
room MQTT2_DEVICE
setList off:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 0
on:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 1
fade:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 2
dim:slider,0,10,255 smartpusher/brightness $EVTPART1
sendText:textField smartpusher/message $EVTPART1
sendImage:textField smartpusher/image $EVTPART1
stateFormat 1:button_1
2:button_2
3:button_3
4:button_4
5:button_5
6:button_6
7:button_7
8:button_8
edit: DevStateIcon anklickbar entfernt
Mein nächster Versuch sieht so aus, funktioniert aber auch nicht
off:selectnumbers,1,1,8,0,lin smartpusher/button$EVTPART1/state 0 {fhem("setreading MQTT2_smartpusher led$EVTPART1 off")}
Es ist bestimmt wieder nur ne Kleinigkeit, wer kann in die richtige Richtung schubsen?
In Bezug auf deinen ungeduldigen Doppelpost (https://forum.fhem.de/index.php/topic,129983.0.html (https://forum.fhem.de/index.php/topic,129983.0.html), der zudem einen seltsamen Titel hat) steht die (etwas verklausulierte) Lösung in https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#Perl-Kommandos (https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#Perl-Kommandos).
Übersetzt sollte das in etwa so passen:
off:selectnumbers,1,1,8,0,lin {fhem("setreading MQTT2_smartpusher led$EVTPART1 off"); return "smartpusher/button$EVTPART1/state 0"}
Vielen lieben dank Beta-User,
Ich hatte dieses Wiki tatsächlich schon gefunden und mehrfach gelesen könnte die Infos aber nicht wirklich umsetzen,
Die von mir gezeigten Versuche waren nur ein kleiner Teil von dem was ich probiert hatte.
Vielen lieben dank wenn das Device komplett so ist wie ich es möchte, zeige ich es gerne und Versuche daraus ein Template zu erstellen. Denn eigentlich ist nur der Gerätename smartpusher variabel.
Hallo Beta-User,
leider funktioniert dein Ansatz auch nicht, so wird zwar das Reading gesetzt aber smartpusher reagiert nicht.
Leider bekomme ich die Meldung beim ausführen im Traffic vom MQTT2 SERVER
SENT
Unknown
argument smartpusher/button2/state, choose one of off:selectnumbers,1,1,8,0,lin on:selectnumbers,1,1,8,0,lin fade:selectnumbers,1,1,8,0,lin dim:slider,0,10,255 sendText:textField sendImage:textField off-till-overnight on-till toggle intervals on-till-overnight off-for-timer blink on-for-timer off-till attrTemplate:?,General_Info,MQTT2_CLIENT_general_bridge,MQTT2_IO_ignoreRegexp_basic,MQTT2_IO_ignoreRegexp_tasmota,MQTT2_IO_ignoreRegexp_shelly,MQTT2_IO_ignoreRegexp_homeassistant,tasmota_basic,tasmota_basic_state_power1,tasmota_3channel_input_shelly_i3,shelly1,shellyPlus_1,shellyPlus_1pm,shellypro4pm,shellyPlus_i4,ESPurna_single_relay,eBus_daemon_splitter,ebus_update_files_from_svn,ems-esp_heater_device,ems-esp_boiler,ems-esp_thermostat_read-only,ems-esp_thermostat_simple,ems-esp_thermostat_RC35_type,zigbee2mqtt_bridge,sonos2mqtt_bridge,sonos2mqtt_speaker,sonos2mqtt_bridge_comfort,roon,InstarCam,wled_controller,go_eCharger,go_eCharger_old,8channel_ethernet_board_split,8channel_ethernet_board_unified,6channel_ethernet_board_6input_split,6channel_ethernet_board_6input_unified,8channel_relay_board_8di_split,esp_milight_hub_bridge,OpenMQTTGateway_MCU,valetudo,worx_landroid,wallpanel_app,weewx_weather_station,McLighting
Kann grade nicht testen, aber die Meldung passt nicht ganz zu dem, was mein Schnipsel bewirken sollte.
Bitte ein raw zeigen.
So es läuft, bei dem aufruf über die perl schiene muss man über das publish vom MQTT Server gehen....
So wird jeweils in das Reading led1-8 der Wert on, off, fade gesetzt und an smartpusher gesendet.
off:selectnumbers,1,1,8,0,lin {fhem("set Fhem_MQTT2_Server publish smartpusher/button$EVTPART1/state 0; setreading MQTT2_smartpusher led$EVTPART1 off")}
on:selectnumbers,1,1,8,0,lin {fhem("set Fhem_MQTT2_Server publish smartpusher/button$EVTPART1/state 1; setreading MQTT2_smartpusher led$EVTPART1 on")}
fade:selectnumbers,1,1,8,0,lin {fhem("set Fhem_MQTT2_Server publish smartpusher/button$EVTPART1/state 2; setreading MQTT2_smartpusher led$EVTPART1 fade")}
vielen dank Beta-User
hilfe kam auch über Facebook Gruppe
Jetzt noch hübsch verpacken und mal gucken wie es mit den Templates geht
Das mit publish via IODev "müssen" ist ein Gerücht!
Zitat von: Beta-User am 31 Oktober 2022, 09:38:04
Das mit publish via IODev "müssen" ist ein Gerücht!
Okay, aber so funktioniert es jedenfalls
Zitat von: Tueftler1983 am 31 Oktober 2022, 09:55:06
Okay, aber so funktioniert es jedenfalls
Das Brett finde ich jetzt dünn :)
Damit Dir klar wird was man in der setList tun muss/kann - musst Du bloß in die Hilfe schauen:
Zitatthe perl expression must return a string containing the topic and the message separated by a space. If it returns "", undef or 0, no MQTT message will be sent.
Du musst in dem Versuch mit Beta-Users Vorschlag einen Schreibfehler gehabt haben. Versuch das bitte nochmal.
So ist es jetzt auf alle Fälle unschön: Dein Perl Code wird nicht definiert, z.B. mit "return undef", beendet.
Zitat von: Otto123 am 31 Oktober 2022, 11:00:25
Das Brett finde ich jetzt dünn :)
Damit Dir klar wird was man in der setList tun muss/kann - musst Du bloß in die Hilfe schauen:Du musst in dem Versuch mit Beta-Users Vorschlag einen Schreibfehler gehabt haben. Versuch das bitte nochmal.
So ist es jetzt auf alle Fälle unschön: Dein Perl Code wird nicht definiert, z.B. mit "return undef", beendet.
Ja hast recht, war unglücklich ausgedrückt, habe jetzt Beta-Users vorschlag nochmal versucht und jetzt geht es wunderbar und auch was schöner um daraus ein Template zu mchen.
Ich kann euch garnicht genug DANKEN es läuft jetzt alles was ich Testen kann, Leider fehlen mir noch die oled Displays die brauchen sehr lange...
hier noch die Raw definition und ein Screenshot
defmod MQTT2_smartpusher MQTT2_DEVICE smartpusher
attr MQTT2_smartpusher devStateIcon 1.click.on:tradfri_dimmerswitch@green \
1.click.off:tradfri_dimmerswitch@red\
1.double_click.on:control_standby@green\
1.double_click.off:control_standby@red\
1.long_click.on:clock@green\
1.long_click.off:clock@red\
\
2.click.on:tradfri_dimmerswitch@green \
2.click.off:tradfri_dimmerswitch@red\
2.double_click.on:control_standby@green \
2.double_click.off:control_standby@red\
2.long_click.on:clock@green\
2.long_click.off:clock@red\
\
3.click.on:tradfri_dimmerswitch@green \
3.click.off:tradfri_dimmerswitch@red\
3.double_click.on:control_standby@green\
3.double_click.off:control_standby@red\
3.long_click.on:clock@green \
3.long_click.off:clock@red\
\
4.click.on:tradfri_dimmerswitch@green \
4.click.off:tradfri_dimmerswitch@red\
4.double_click.on:control_standby@green\
4.double_click.off:control_standby@red\
4.long_click.on:clock@green\
4.long_click.off:clock@red\
\
5.click.on:tradfri_dimmerswitch@green \
5.click.off:tradfri_dimmerswitch@red\
5.double_click.on:control_standby@green\
5.double_click.off:control_standby@red\
5.long_click.on:clock@green\
5.long_click.off:clock@red\
\
6.click.on:tradfri_dimmerswitch@green \
6.click.off:tradfri_dimmerswitch@red\
6.double_click.on:control_standby@green\
6.double_click.off:control_standby@red\
6.long_click.on:clock@green\
6.long_click.off:clock@red\
\
7.click.on:tradfri_dimmerswitch@green\
7.click.off:tradfri_dimmerswitch@red\
7.double_click.on:control_standby@green\
7.double_click.off:control_standby@red\
7.long_click.on:clock@green\
7.long_click.off:clock@red\
\
8.click.on:tradfri_dimmerswitch@green \
8.click.off:tradfri_dimmerswitch@red\
8.double_click.on:control_standby@green\
8.double_click.off:control_standby@red\
8.long_click.on:clock@green\
8.long_click.off:clock@red\
\
9.on:FS20.off@green \
9.off:FS20.off@red\
9.fade:clock@green\
\
\
10.on:FS20.off@green \
10.off:FS20.off@red\
10.fade:clock@green \
\
\
11.on:FS20.off@green \
11.off:FS20.off@red\
11.fade:clock@green\
\
\
12.on:FS20.off@green \
12.off:FS20.off@red\
12.fade:clock@green\
\
\
13.on:FS20.off@green\
13.off:FS20.off@red \
13.fade:clock@green\
\
\
14.on:FS20.off@green \
14.off:FS20.off@red\
14.fade:clock@green\
\
\
15.on:FS20.off@green\
15.off:FS20.off@red\
15.fade:clock@green\
\
\
16.on:FS20.off@green \
16.off:FS20.off@red\
16.fade:clock@green\
attr MQTT2_smartpusher readingList smartpusher/button./.*:.* { $TOPIC =~ m,smartpusher/button(.)/(.+),;; my $onoff = $EVENT eq 'true' ? 'on' : 'off';; my $ret->{"button_$1"} = "$2 $onoff";; return $ret}\
attr MQTT2_smartpusher room MQTT2_DEVICE
attr MQTT2_smartpusher setList off:selectnumbers,1,1,8,0,lin {fhem("setreading MQTT2_smartpusher led$EVTPART1 off");; return "smartpusher/button$EVTPART1/state 0"}\
\
on:selectnumbers,1,1,8,0,lin {fhem("setreading MQTT2_smartpusher led$EVTPART1 on");; return "smartpusher/button$EVTPART1/state 1"}\
\
fade:selectnumbers,1,1,8,0,lin {fhem("setreading MQTT2_smartpusher led$EVTPART1 fade");; return "smartpusher/button$EVTPART1/state 2"}\
\
dim:slider,0,10,255 smartpusher/brightness $EVTPART1\
\
sendText:textField smartpusher/message $EVTPART1\
\
sendImage:textField smartpusher/image $EVTPART1\
\
\
\
\
attr MQTT2_smartpusher stateFormat 1: dev1\
2: dev2\
3: dev3\
4: dev4\
5: dev5\
6: dev6\
7: dev7\
8: dev8\
<br>\
1:button_1\
2:button_2\
3:button_3\
4:button_4\
5:button_5\
6:button_6\
7:button_7\
8:button_8\
<br>\
9:led1\
10:led2\
11:led3\
12:led4\
13:led5\
14:led6\
15:led7\
16:led8
setstate MQTT2_smartpusher 1: dev1\
2: dev2\
3: dev3\
4: dev4\
5: dev5\
6: dev6\
7: dev7\
8: dev8\
<br>\
1:long_click off\
2:click off\
3:long_click off\
4:double_click off\
5:click off\
6:double_click off\
7:long_click off\
8:click off\
<br>\
9:on\
10:off\
11:fade\
12:on\
13:off\
14:fade\
15:on\
16:off
...das devStateIcon könnte man mit Hilfe von Wildcards auch etwas verschlanken...
Zitat von: Beta-User am 02 November 2022, 12:19:20
...das devStateIcon könnte man mit Hilfe von Wildcards auch etwas verschlanken...
Okay, muss ich Mal gucken ob ich das hin bekomme. Vielen Dank für die Unterstützung
Hallo @Beta-User
darf ich dich fragen wie ich das dev state icon noch kürzen kann bin ja froh das ich das mit den 3 reihen und 8 spalten hin bekommen habe.
lg
Holger
Zitat von: Tueftler1983 am 03 November 2022, 16:25:22
Hallo @Beta-User
darf ich dich fragen wie ich das dev state icon noch kürzen kann bin ja froh das ich das mit den 3 reihen und 8 spalten hin bekommen habe.
Das mit den Reihen und Spalten kommt aus stateFormat. devStateIcon (in der "einfachen Form") ersetzt nur jede passende Zeile mit einem Icon, wobei das Ganze so organisiert ist, dass der erste Match der Liste genommen wird (deswegen verdrängt das hintere ".*off" nicht "..click.off").
So sollte das Ergebnis genauso aussehen:
attr MQTT2_smartpusher devStateIcon ..click.on:tradfri_dimmerswitch@green \
..click.off:tradfri_dimmerswitch@red\
..double_click.on:control_standby@green\
..double_click.off:control_standby@red\
..long_click.on:clock@green\
..long_click.off:clock@red\
.*on:FS20.off@green \
.*off:FS20.off@red\
.*fade:clock@green
Okay das funktioniert super kann ich oben die zwei DropDown Menüs ausblenden weil die eh nur über notify oder doif gesetzt werden.
Aber vielen lieben dank für die unterstützung!!