Sonoff NSPanel, geflasht mit Tasmota, Einbindung in FHEM

Begonnen von mike1969bln, 14 Januar 2022, 13:02:57

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: Beta-User am 25 Januar 2022, 09:56:49
Thx. Dann werde ich mal bei Gelegenheit den aktuellen Zwischenstand in ein (split-) attrTemplate übernehmen.
...ist via update unter dem Namen "tasmota_NSPanel_split" verfügbar...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

darkness

Zitat von: hackepeter am 24 Januar 2022, 19:11:04
...hängt m.E. davon ab, ob das Problem des Einfrierens noch gelöst wird oder nicht


Habe ich gerade in der Anleitung gelesen:
Zitat
When initially drawing widgets you need to send commands for all 8 indexes, if you want to keep an index empty send a delete command for that index.

Man muss also ggf. "leere" Widgets zeichnen im alle 8 indizes zu füllen. Habe ich aber noch nicht getestet.

hackepeter

Nabend,

ich habe das "tasmota_NSPanel_split" getestet,POWER1 und POWER2 funktionieren, von den widgets kommen noch keine readings an, x_NSPSend_delete und x_NSPSend_json hast du sicher absichtlich nicht mit ins template gepackt...

Die 4 Konfigurationsdialoge sind für mich etwas verwirrend. Ich habe aus Unwissenheit folgendes eingetragen:


Specify the unknown parameters for MQTT2_DVES_0C89FC/tasmota_NSPanel_split:
Command topic prefix, without trailing /
/SmartHome/Kueche/cmnd/NSPanelKueche
ack topic prefix, without trailing /
/SmartHome/Kueche/stat/NSPanelKueche


Specify the unknown parameters for MQTT2_DVES_0C89FC/tasmota_2channel_split:
/Command topic prefix, without trailing /
/SmartHome/Kueche/cmnd/NSPanelKueche
ack topic prefix, without trailing /
/SmartHome/Kueche/stat/NSPanelKueche


Specify the unknown parameters for MQTT2_DVES_0C89FC/tasmota_basic_state_power1:
Command topic prefix, without trailing /
/SmartHome/Kueche/cmnd/NSPanelKueche
info topic prefix, without trailing /
/SmartHome/Kueche/tele/NSPanelKueche
ack topic prefix, without trailing /
/SmartHome/Kueche/stat/NSPanelKueche

Specify the unknown parameters for MQTT2_DVES_0C89FC/tasmota_set_lowercase_texts_and_state1:
Command topic prefix, without trailing /
/SmartHome/Kueche/cmnd/NSPanelKueche


Ich glaube wenn während der Konfiguration des attrTemplates autocreate aktiv ist, kommt es zu folgender Fehlermeldung:
defmod MQTT2_DVES_0C89FC_CH2: Cannot change the TYPE of an existing definition


CH1:

defmod MQTT2_DVES_0C89FC MQTT2_DEVICE DVES_0C89FC
attr MQTT2_DVES_0C89FC autocreate 0
attr MQTT2_DVES_0C89FC comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd//SmartHome/Kueche/cmnd/NSPanelKueche/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr MQTT2_DVES_0C89FC devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
attr MQTT2_DVES_0C89FC icon tradfri_filled_floalt
attr MQTT2_DVES_0C89FC jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
attr MQTT2_DVES_0C89FC model tasmota_basic_state_power1
attr MQTT2_DVES_0C89FC readingList /SmartHome/Kueche/tele/NSPanelKueche/LWT:.* LWT\
  /SmartHome/Kueche/tele/NSPanelKueche/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  /SmartHome/Kueche/tele/NSPanelKueche/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  /SmartHome/Kueche/tele/NSPanelKueche/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
  /SmartHome/Kueche/tele/NSPanelKueche/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  /SmartHome/Kueche/stat/NSPanelKueche/POWER1:.* state\
  /SmartHome/Kueche/stat/NSPanelKueche/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_DVES_0C89FC setList off:noArg    /SmartHome/Kueche/cmnd/NSPanelKueche/POWER1 0\
  on:noArg     /SmartHome/Kueche/cmnd/NSPanelKueche/POWER1 1\
  toggle:noArg /SmartHome/Kueche/cmnd/NSPanelKueche/POWER1 2\
  setOtaUrl:textField /SmartHome/Kueche/cmnd/NSPanelKueche/OtaUrl $EVTPART1\
  upgrade:noArg   /SmartHome/Kueche/cmnd/NSPanelKueche/upgrade 1
attr MQTT2_DVES_0C89FC setStateList on off toggle
attr MQTT2_DVES_0C89FC stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
attr MQTT2_DVES_0C89FC webCmd :

setstate MQTT2_DVES_0C89FC <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
on
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 ANALOG_Temperature1 31.0
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Berry_HeapUsed 19
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Berry_Objects 423
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 ESP32_Temperature 83.9
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Heap 134
setstate MQTT2_DVES_0C89FC 2022-01-26 19:44:48 IODev myBroker
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 LoadAvg 999
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 MqttCount 2
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:24 SaveData on
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:24 SetOption26 on
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Sleep 0
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 SleepMode Dynamic
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:23 StateText1 off
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:23 StateText2 on
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:23 StateText3 toggle
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:23 StateText4 hold
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 TempUnit C
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Time 2022-01-26T20:02:40
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Uptime 0T00:35:09
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 UptimeSec 2109
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_AP 1
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_BSSId 00:A0:57:42:CE:39
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_Channel 11
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_Downtime 0T00:00:06
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_LinkCount 1
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_Mode 11n
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_RSSI 94
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_SSId Komisch Elektronisch
setstate MQTT2_DVES_0C89FC 2022-01-26 20:02:40 Wifi_Signal -53
setstate MQTT2_DVES_0C89FC 2022-01-26 19:49:48 associatedWith MQTT2_DVES_0C89FC_CH2
setstate MQTT2_DVES_0C89FC 2022-01-26 19:53:07 attrTemplateVersion 20210523
setstate MQTT2_DVES_0C89FC 2022-01-26 19:54:34 state on


CH2:
defmod MQTT2_DVES_0C89FC_CH2 MQTT2_DEVICE DVES_0C89FC
attr MQTT2_DVES_0C89FC_CH2 comment Channel 2 for MQTT2_DVES_0C89FC
attr MQTT2_DVES_0C89FC_CH2 devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
attr MQTT2_DVES_0C89FC_CH2 icon tradfri_filled_floalt
attr MQTT2_DVES_0C89FC_CH2 jsonMap POWER2:0 Dimmer:pct POWER1:0 Heap:0 LedTable:0 LoadAvg:0 MqttCount:0 SaveData:0 Scheme:0 SetOption26:0 Sleep:0 SleepMode:0 Speed:0 StateText1:0 StateText2:0 StateText3:0 StateText4:0 Time:0 Uptime:0 UptimeSec:0 Wifi_SSId:0 Wifi_RSSI:0 Wifi_LinkCount:0 Wifi_Downtime:0 Wifi_Channel:0 Wifi_BSSId:0 Wifi_AP:0 ANALOG_A0:0 SetOption26:0 Sleep:0 SleepMode:0 Speed:0 StateText1:0 StateText2:0 StateText3:0 StateText4:0 Time:0 Uptime:0 UptimeSec:0 Wifi_SSId:0 Wifi_RSSI:0 Wifi_LinkCount:0 Wifi_Downtime:0 Wifi_Channel:0 Wifi_BSSId:0 Wifi_AP:0
attr MQTT2_DVES_0C89FC_CH2 model tasmota_2channel_split
attr MQTT2_DVES_0C89FC_CH2 readingList /SmartHome/Kueche/stat/NSPanelKueche/POWER2:.* state\
DVES_0C89FC:/SmartHome/Kueche/tele/NSPanelKueche/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_0C89FC_CH2 setList off:noArg    /SmartHome/Kueche/cmnd/NSPanelKueche/POWER2 0\
  on:noArg     /SmartHome/Kueche/cmnd/NSPanelKueche/POWER2 1\
  toggle:noArg /SmartHome/Kueche/cmnd/NSPanelKueche/POWER2 2
attr MQTT2_DVES_0C89FC_CH2 setStateList on off toggle
attr MQTT2_DVES_0C89FC_CH2 stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
attr MQTT2_DVES_0C89FC_CH2 webCmd :

setstate MQTT2_DVES_0C89FC_CH2 <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
off
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:49:48 IODev myBroker
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:54:47 NSPanel_ctype group
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:54:47 NSPanel_id 1
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:54:47 NSPanel_params_switch on
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:54:47 NSPanel_params_switches_1_outlet 0
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:54:47 NSPanel_params_switches_1_switch on
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:49:48 associatedWith MQTT2_DVES_0C89FC
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:49:48 attrTemplateVersion 20211030
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 20:04:11 state off
setstate MQTT2_DVES_0C89FC_CH2 2022-01-26 19:49:48 subscriptions /SmartHome/Kueche/cmnd/NSPanelKueche/# /SmartHome/Kueche/cmnd/tasmotas/# cmnd/DVES_0C89FC_fb/#


ZitatMan muss also ggf. "leere" Widgets zeichnen im alle 8 indizes zu füllen. Habe ich aber noch nicht getestet.

Nach dem Neustarten (default config) sind alle Widgets belegt. Ich habe zum testen nur id1 gelöscht und neu angelegt. Dennoch das Problem des Einfrierens.

mike1969bln

Hallo in die Runde,

ich war hier ein paar Tage nicht am Lesen und bin jetzt erstaunt, wieviel hier passiert ist. Super.

Ich habe für zwei Widgets mal die JSON-Antworten bei einer Veränderung am Panel rausgesucht. Vielleicht hilft das dann noch weiter.

1.  # 4 = toggle switch quad horizontal
{"NSPanel":{"ctype":"group","id":"4","params":{"switches":[{"switch":"off","outlet":0},{"switch":"on","outlet":1},{"switch":"off","outlet":2},{"switch":"on","outlet":3}]}}}

2.  # 52 = CCT bulb
{"NSPanel":{"ctype":"group","id":"1","params":{"switch":"on"}}}
{"NSPanel":{"ctype":"group","id":"1","params":{"ltype":"white","white":{"br":86,"ct":124}}}}


Die ID ist jeweils die Position auf dem Panel.


Beta-User

Hallo zusammen
Zitat von: hackepeter am 26 Januar 2022, 20:28:38
x_NSPSend_delete und x_NSPSend_json hast du sicher absichtlich nicht mit ins template gepackt...
Jein. Die sind drin, aber der Code läuft nicht bis zu dieser Stelle durch, wegen eines Fehlers an einer ganz anderen Stelle:
ZitatIch glaube wenn während der Konfiguration des attrTemplates autocreate aktiv ist, kommt es zu folgender Fehlermeldung:
defmod MQTT2_DVES_0C89FC_CH2: Cannot change the TYPE of an existing definition
Und nein, das hat nichts mit autocreate zu tun...

Passende updates sind in Vorbereitung.

ZitatDie 4 Konfigurationsdialoge sind für mich etwas verwirrend.
Die erscheinen nur, wenn man ein Device hat, das attrTemplate nicht auswerten kann (hier: es war kein LWT-Topic in der readingList).

ZitatNach dem Neustarten (default config) sind alle Widgets belegt. Ich habe zum testen nur id1 gelöscht und neu angelegt. Dennoch das Problem des Einfrierens.
Vermutlich ist es erforderlich, die Konfiguration in der .be zu machen, bis ein update für den Treiber erhältlich ist. MAn. ist es trotzdem sinnvoll, gleich hier bei der attrTemplate-Entwicklung die Werkzeuge vorzusehen, dass man das recht easy von FHEM aus machen kann.

Zitat von: mike1969bln am 26 Januar 2022, 23:51:18
ich war hier ein paar Tage nicht am Lesen und bin jetzt erstaunt, wieviel hier passiert ist. Super.
Nun ja, bis hierhin sind es eigentlich eher "basics"...

Zitat
Ich habe für zwei Widgets mal die JSON-Antworten bei einer Veränderung am Panel rausgesucht. Vielleicht hilft das dann noch weiter.
Unterstellt, die gezeigten Payloads kommen bei "tele"-SENSOR an, beginnt jetzt die "Kür"  ;) ...

Als ersten Schritt könnte man mal sowas basteln, um die Reading-Namen zu verkürzen:
TELETOPIC/SENSOR:.* { $EVENT =~ m,\A..NSPanel.+id...(\d+).+params..(.+)..\z, ? json2nameValue($2,"Pan_${1}_",$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }Der nächste Schritt wäre dann, "json2nameValue($2,"Pan_${1}_",$JSONMAP)" durch einen passenden myUtils-Aufruf zu ersetzen, und/oder wenigstens den Teil rauszufiltern, den man nicht braucht (z.B. die "outlet"-Infos kommen mir überflüssig vor)...

update folgen, wie bereits erwähnt :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

darkness

Zitat von: hackepeter am 26 Januar 2022, 20:28:38
Nach dem Neustarten (default config) sind alle Widgets belegt. Ich habe zum testen nur id1 gelöscht und neu angelegt. Dennoch das Problem des Einfrierens.

Du musst immer alle 8 Positionen ansprechen. Ich habe es getestet, indem ich z.B. an Position 3 und 6 ein Widget erstellt habe. Für die restlichen sende ich ein delete (auch wenn die leer sind). So läuft es bei mir.

Gruß

Beta-User

Vielleicht vorneweg nochmal:
Zitat von: Beta-User am 22 Januar 2022, 08:06:15
Vorschläge:
- Verschieben nach MQTT (kann jeder TE selbst)

Zitat von: darkness am 27 Januar 2022, 12:43:55
Du musst immer alle 8 Positionen ansprechen. Ich habe es getestet, indem ich z.B. an Position 3 und 6 ein Widget erstellt habe. Für die restlichen sende ich ein delete (auch wenn die leer sind). So läuft es bei mir.
...dann kommt mit dem nächsten update auch ein Beispiel, wie man via "Online"-Topic-Auswertung eine direkte Konfiguration machen könnte...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

mike1969bln

Zitat von: Beta-User am 27 Januar 2022, 12:03:34
Unterstellt, die gezeigten Payloads kommen bei "tele"-SENSOR an, beginnt jetzt die "Kür"  ;) ...

Dazu eine Ergänzung: der Payload kommt bei tele/RESULT an.

Beta-User

Zitat von: mike1969bln am 27 Januar 2022, 22:10:26
Dazu eine Ergänzung: der Payload kommt bei tele/RESULT an.
Danke.

Update ist im svn, am einfachsten (braucht auch keinen Neustart) zu bekommen via:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
Vor dem Anwenden aber bitte ggf. das Device für den 2. Kanal löschen.

Zitat von: Beta-User am 27 Januar 2022, 13:08:58
...dann kommt mit dem nächsten update auch ein Beispiel, wie man via "Online"-Topic-Auswertung eine direkte Konfiguration machen könnte...
Das ist in der vorliegenden Form erst mal eher als Test gedacht, ob das so funktioniert wie gedacht. Wird noch ergänzt um ein paar Auswahlmöglichkeiten, damit man seine eigenen, angepaßten Vorgaben dann nicht jedes Mal wieder reinkopieren muss...
Aber vorher muss es erst mal grundsätzlich auch im wirklichen Leben funktionieren :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

fhem-challenge

#24
Hi,

schön zu lesen, dass jetzt auch weitere Mitstreiter das NSPanel in fhem einbinden wollen.

Ich hatte es im November bekommen (die US Variante, ist aber erstmal egal).

Ich musste hier auch durch diverse Höhen und Tiefen gehen, bis ich es sinnvoll bei mir einsetzen kann.

Restrictions gibt es noch einige (die Widgets, selbst Widgets schreiben ist aufwendig, also nutzt man die vorgegebenen, die nicht alle "schön" sind).

Was ich nun  mache:

1.) Ich habe den NSPanel via MQTT si eingerichtet, dass ein "klick" auf das letzte rechte Widget eine ganze neue Reihe Widgets erzeugt. Und ja, es müssen immer! alle 8 Widgets erzeugt werden/oder gelöscht werden.
2.) Das ist aber via MQTT und in FHEM alles möglich (hatte ich erst so), nur recht langsam, ich habe stattdessen in der nspanel.be die Menus hardcoded vorgegeben (also 3-4 Menüseiten mit jeweils 8 Widgets). Die Umschaltung der einzelnen Menüseiten geht also im NSPanel selbst und die Notification, welche Menuseite ich habe, schicke ich via MQTT an FHEM
3.) Der Menüseiten Aufbau geht im nspanel selbst viel schneller, als immer alle 8 Widgets via MQTT darzustellen (war auch zu erwarten war).
4.) Aktuell ist alle noch ein Testaufbau

Anbei meine nspanel.be (mit 3-4 testmenüs)

Sowie meine Config in FHEM zum Panel:

setlist:
on1:noArg cmnd/NSPanel/POWER1 ON
off1:noArg cmnd/NSPanel/POWER1 OFF
on2:noArg cmnd/NSPanel/POWER2 ON
off2:noArg cmnd/NSPanel/POWER2 OFF
menu_a:noArg cmnd/NSPanel/menu_a
menu_b:noArg cmnd/NSPanel/menu_b
menu:a,b,c,d,e cmnd/NSPanel/menu_$EVTPART1
widget1:noArg cmnd/NSPanel/nspsend {"HMI_resources":[{"index":7,"ctype":"group","id":"Licht","uiid":6}]}
mach1 cmnd/NSPanel/nspsend $EVTPART1
mach cmnd/NSPanel/nspsend $EVTPART1


sowie readinglist:

DVES_DB0100:stat/170pic/LOGGING:.* LOGGING
DVES_DB0100:stat/170pic/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
DVES_DB0100:stat/170pic/POWER2:.* POWER2
DVES_DB0100:stat/170pic/POWER1:.* POWER1
DVES_DB0100:tele/170pic/LWT:.* LWT
DVES_DB0100:cmnd/170pic/POWER:.* POWER
DVES_DB0100:tele/170pic/INFO1:.* { json2nameValue($EVENT, 'INFO1_', $JSONMAP) }
DVES_DB0100:tele/170pic/INFO2:.* { json2nameValue($EVENT, 'INFO2_', $JSONMAP) }
DVES_DB0100:tele/170pic/INFO3:.* { json2nameValue($EVENT, 'INFO3_', $JSONMAP) }
DVES_DB0100:tele/170pic/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
DVES_DB0100:tele/170pic/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }
DVES_DB0100:tele/170pic/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_', $JSONMAP) }
DVES_DB0100:tasmota/discovery/C4DD57DB0100/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }
DVES_DB0100:tasmota/discovery/C4DD57DB0100/sensors:.* { json2nameValue($EVENT, 'sensors_', $JSONMAP) }
DVES_DB0100:NSPanel/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
DVES_DB0100:NSPanel/LOGGING:.* LOGGING
DVES_DB0100:NSPanel/LWT:.* LWT
DVES_DB0100:NSPanel/cmnd/POWER:.* POWER
DVES_DB0100:NSPanel/INFO1:.* { json2nameValue($EVENT, 'INFO1_', $JSONMAP) }
DVES_DB0100:NSPanel/INFO2:.* { json2nameValue($EVENT, 'INFO2_', $JSONMAP) }
DVES_DB0100:NSPanel/INFO3:.* { json2nameValue($EVENT, 'INFO3_', $JSONMAP) }
DVES_DB0100:NSPanel/POWER1:.* POWER1
DVES_DB0100:NSPanel/POWER2:.* POWER2
DVES_DB0100:NSPanel/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }
DVES_DB0100:NSPanel/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_', $JSONMAP) }
DVES_DB0100:stat/NSPanel/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
DVES_DB0100:stat/NSPanel/LOGGING:.* LOGGING
DVES_DB0100:tele/NSPanel/LWT:.* LWT
DVES_DB0100:cmnd/NSPanel/POWER:.* POWER
DVES_DB0100:tele/NSPanel/INFO1:.* { json2nameValue($EVENT, 'INFO1_', $JSONMAP) }
DVES_DB0100:tele/NSPanel/INFO2:.* { json2nameValue($EVENT, 'INFO2_', $JSONMAP) }
DVES_DB0100:tele/NSPanel/INFO3:.* { json2nameValue($EVENT, 'INFO3_', $JSONMAP) }
DVES_DB0100:stat/NSPanel/POWER1:.* POWER1
DVES_DB0100:stat/NSPanel/POWER2:.* POWER2
DVES_DB0100:tele/NSPanel/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
DVES_DB0100:tele/NSPanel/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }
DVES_DB0100:tele/NSPanel/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_', $JSONMAP) }
DVES_DB0100:stat/NSPanel/UPGRADE:.* { json2nameValue($EVENT, 'UPGRADE_', $JSONMAP) }



meine webcmd:

on1:off1:on2:off2:menu a:menu b:menu c:menu d:menu e



Ich will in FHEM halt wissen, welches Menü auf dem NSPanel gerade "aktiv" ist, damit ich in FHEM auf die MQTT Events auch passend im Kontext reagieren kann -> Klappt

Und ich wechsele die Menüs auf dem NSPanel ...


Und wie gesagt, bei mir noch "beta".... bis mich die  Sinnhaftigkeit des NSPanel überzeugt hat (die Hardware ist gut), die Integration etwas hakelig.


Viele Grüße!

Andreas

Gisbert

Hallo zusammen,

ich beginne mich mit diesem Gerät auseinanderzusetzen. Mit dem Schalten von einem oder zwei Verbrauchern, deren Kabel in der ausgewählten UP-Dose enden, gibt es über die Wigets virtuelle Schalter.

Hierzu wäre es schön, wenn ich 3 Rollläden unabhängig an einer Stelle (eben diesem NSPanel) hoch, runter und stoppen könnte (Befehle dazu gibt es in Fhem). Hat das schon jemand umgesetzt, oder hat jemand dazu eine Idee, ob das gut funktionieren kann? Dieses Panel würde auf jeden Fall den WAF stark erhöhen.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Beta-User

Zitat von: fhem-challenge am 01 Februar 2022, 18:55:02
2.) Das ist aber via MQTT und in FHEM alles möglich (hatte ich erst so), nur recht langsam, ich habe stattdessen in der nspanel.be die Menus hardcoded vorgegeben (also 3-4 Menüseiten mit jeweils 8 Widgets). Die Umschaltung der einzelnen Menüseiten geht also im NSPanel selbst und die Notification, welche Menuseite ich habe, schicke ich via MQTT an FHEM
Das mit den Menüs ist interessant, falls Unterstützung gewünscht ist, wäre interessant, wie die Infos aus den einzelnen Menüseiten und die Seitenwechsel per MQTT vermeldet werden (am besten den MQTT-Traffic mit Topic und payload).

Was die readingList angeht, würde ich das mind. in diese Richtung ändern, da scheint noch einiges an "Altlasten" aus vorherigen Versuchen drin zu sein, außerdem sind die "discovery" und "cmnd"-Topics mAn. was, was man ignorieren sollte (am besten via ignoreRegexp am IO, hier über die rL):
stat/NSPanel/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
stat/NSPanel/LOGGING:.* LOGGING
tele/NSPanel/LWT:.* LWT
tele/NSPanel/INFO1:.* { json2nameValue($EVENT, 'INFO1_', $JSONMAP) }
tele/NSPanel/INFO2:.* { json2nameValue($EVENT, 'INFO2_', $JSONMAP) }
tele/NSPanel/INFO3:.* { json2nameValue($EVENT, 'INFO3_', $JSONMAP) }
stat/NSPanel/POWER1:.* POWER1
stat/NSPanel/POWER2:.* POWER2
tele/NSPanel/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
tele/NSPanel/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }
tele/NSPanel/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_', $JSONMAP) }
stat/NSPanel/UPGRADE:.* { json2nameValue($EVENT, 'UPGRADE_', $JSONMAP) }
tasmota/discovery/C4DD57DB0100/config:.* {}
tasmota/discovery/C4DD57DB0100/sensors:.* {}
cmnd/NSPanel/POWER:.* {}


Weiter dürfte die "split"-Variante für die beiden button/relay besser in FHEM zu integrieren sein (SetExtensions, z.B.).

Zitat von: Gisbert am 13 Februar 2022, 15:46:10
ich beginne mich mit diesem Gerät auseinanderzusetzen. Mit dem Schalten von einem oder zwei Verbrauchern, deren Kabel in der ausgewählten UP-Dose enden, gibt es über die Wigets virtuelle Schalter.
Nach meinem Verständnis geht das zwar vielleicht auch über Widgets/virtuelle Schalter, aber dazu kann man auch einfach die zwei Tasten unten benutzen...

Zitat
Hierzu wäre es schön, wenn ich 3 Rollläden unabhängig an einer Stelle (eben diesem NSPanel) hoch, runter und stoppen könnte (Befehle dazu gibt es in Fhem). Hat das schon jemand umgesetzt, oder hat jemand dazu eine Idee, ob das gut funktionieren kann?
Prinzipiell ist das Panel wohl dazu gedacht, solche Szenarien umzusetzen, und um das zu vereinfachen, gibt es das attrTemplate, um wenigstens die Reading-Namen halbwegs "einzukürzen". Bisher allerdings ohne Rückmeldung, ob das funktioniert... (Und was deine Rollladen-Devices angeht: Die sind dafür nicht optimal, ich würde wetten, dass das Panel einen numerischen (Prozent-) Wert liefert, den du aber nicht ohne weiteres mit deiner Eigenbau-Firmware "verdauen" kannst). "Stop" ist vermutlich ein eher schwieriges Thema, denn dafür müßte man entweder ein separates Widget "verbraten" oder in einem "Rollladen-Widget" wissen, dass der Rollladen grade läuft.

Für den Rest scheint zu gelten:
Zitat
4.) Aktuell ist alle noch ein Testaufbau
Bisher habe ich im Forum nicht viel mehr gesehen wie "Machbarkeitsstudien", es dürfte aber nicht allzu schwierig sein, da was zusammenzuschustern (vorausgesetzt, man muss nicht allzuviel spezielles Coding drumrum bauen wie bei Gisbert's Rollläden).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Gisbert

Hallo Jörg,

ZitatUnd was deine Rollladen-Devices angeht: Die sind dafür nicht optimal, ich würde wetten, dass das Panel einen numerischen (Prozent-) Wert liefert, den du aber nicht ohne weiteres mit deiner Eigenbau-Firmware "verdauen" kannst. "Stop" ist vermutlich ein eher schwieriges Thema, denn dafür müßte man entweder ein separates Widget "verbraten" oder in einem "Rollladen-Widget" wissen, dass der Rollladen grade läuft.

Die Rollladenaktoren sind zwar Eigenkonstrukte, laufen aber mit Tasmota (teils mit unterschiedlich alten Firmwares, je nachdem, wann ich es installiert hatte).
Befehle in Fhem lauten für einen Rollladen:
set RollladenWohnzimmerTerrasse DriveDown
set RollladenWohnzimmerTerrasse DriveUp
set RollladenWohnzimmerTerrasse DriveSlit
set RollladenWohnzimmerTerrasse Stop

Könnte man 4 verschiedenen, virtuellen Schaltern (oder ggf. nur 2 Schaltern für hoch/runter) beibringen, dass sie die obigen Befehle zu Fhem schicken?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Beta-User

...die (hier OT-) Frage ist: Warum nimmst du nicht die aktuelle Rollladen-Implementierung innerhalb Tasmota und "gut ist"...
Wie bereits an anderer Stelle angemerkt: Du kannst alle möglichen würgarounds bauen, aber ein Rollladen, der "pct spricht", ist einfach ein richtiger Rollladen, und alles andere ist Gemurkse :P ... (mir ist schon klar, dass du halt aus historischen Gründen mit MQTT_DEVICE rummachst, was eben keine sinnvolle JSON-Implementierung enthält => Umziehen).

In ein MQTT2_DEVICE dann einen "Kompabilitäts-Layer" einzubauen, der deine "althergebrachten" Kommandos mit implementiert, ist keine große Sache...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Gisbert

Hallo Jörg,

den Umzug nach MQTT2_DEVICE ist wohl machbar, muss aber wie du an verschiedenen Stellen geschrieben hast, gut geplant werden. Da hab ich mich bisher nicht dran getraut. Ich hab ingesamt 21 Devices vom Typ MQTT_DEVICE, u.a. hängt die komplette Heizungs- und Warmwassersteuerung dran. Das sollte immer noch kein Grund sein, nicht damit anzufangen, aber bei mir funktioniert meistens so gut wie nichts auf Anhieb (Ausnahme: ATtiny85 mit Dallas DS18B20 und 433 MHz-Sender).
Spätestens, wenn ich einen neuen Server mit Virtualisierung/Containern aufsetze, wird das ein Punkt sein, den ich umsetzen werde. Aber auch da sehe ich den Wald vor lauter Bäumen noch nicht. Virtualbox, Proxmox, Docker, LXC stehen zur Debatte, wobei ich nicht weiß, was für mich am besten geeignet ist.

Das war jetzt reichlich offtopic, zurück zum Thema. Vielleicht ist das falsch rüber gekommen, der Rollladen hängt nicht direkt am Sonoff NSPanel. Ich würde gerne zentral an einer Stelle verschiedene Rollläden manuell (über virtuelle Schalter) bedienen können, und dazu müssten Befehle vom NSPanel zu Fhem geschickt werden.

Viele​ Grüße​ Gisbert​

Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY