MQTT2+Shelly: erste Konfiguration und template-Entwicklung

Begonnen von miggun, 03 Dezember 2018, 21:05:34

Vorheriges Thema - Nächstes Thema

87insane

ZitatOhne jetzt im Detail da verglichen zu haben: Besteht jetzt hinsichtlich des (vorhandenen) 2.5-er Roller-Templates Handlungsbedarf oder nicht?
Ich hätte es gerne mit invertierter PCT Anzeige. Ansonsten gibt es da nichts zu meckern. Es geht ja auch alles. Jetzt stellt sich die Frage wie schnell der Support da handelt oder ob swap nachher klappt. Wenn swap nicht klappt, würde ich übergangsweise gerne ein Template haben, welches die Anzeige so zu sagen umrechnet für die, die es gerne so haben wollen wie ich.
Da weiß ich aber nicht wie das genau geht. Da wäre Hilfe super...zumindest Hinweise.

kabanett

Zitat von: Beta-User am 17 Mai 2019, 12:04:46

Ohne jetzt im Detail da verglichen zu haben: Besteht jetzt hinsichtlich des (vorhandenen) 2.5-er Roller-Templates Handlungsbedarf oder nicht?




Da bin ich raus! Im Grunde wollte ich nur darauf hinweisen, mehr nicht. Jemand wie ich, der das Gerät original verkabelt und die Einstellung belässt, hat im Device (Template) den falschen Status.
87insane hat ja geschrieben
Zitat@kabanett: Ist wie beim shelly2 - leider genau umgekehrt zu dem wie ich es mag.
Die Invertierung gibt es auch nicht wie bei Tasmota. Wenn man im Shelly die Invertierung wählt, dann schaltet er nur anders rum. Also rauf/runter. Die PCT, die FHEM bekommt sind immer "falsch" rum oder wie die HM Freunde sagen, richtig rum ;)
Ich kann nicht sagen wer oder was hier RICHTIG oder FALSCH ist! Man müsste den anderen genannten Hersteller dann auch noch bitten es zu ändern ;)

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

87insane

Es gibt kein richtig oder falsch. Ist Ansichtssache... Bei fast allen Geräten kann man das aber einstellen.
Der Status ist so gesehen auch nicht falsch sondern wie bei Homematic z.B.

Da aber alle meine Rollos anders rum fahren bzw. die PCT senden, macht es ja auch Sinn das hier zu haben. Es ist das einzige Rollo bei dem ich einen 2.5er einbauen musste, da z.B. ein Sonoff T1 da nicht hin passt (kein Platz an der Stelle).

DasQ

#363
dann statt ? (fragezeichen)
etwas in der art

!!!!!!!!!!!!!!!! --->README <---- !!!!!!!!!!!!!!!!11111einseinseinselfelf 
;) :o
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

87insane

#364
Hey zusammen.... Ich behaupte mal ich hab es. Bitte mal einer von denen die wirklich Ahnung haben, drüber schauen. Bin mir nicht sicher ob es ggf. Seiteneffekte geben könnte.
Es sind vom Prinzip her nur 3 Dinge anders als beim Original.
- setList pct Slider
- readingList beide pos´s

@Beta-User: Wie du das am Ende einbaust in die Datei ist mir egal. Ich persönlich würde es wie bereits beim Tasmota Rollo Template machen. Quasi über das eigentliche Template set nur die Dinge austauschen, die anders sind bzw. in dem Fall reading.- und setList + devStateIcons. Danke auch nochmal an Dich!

Template für invert_1 (100=zu / 0%=offen) - Ich hoffe die bauen das schön in die FW ein. Aber solange das nicht so ist...
# shelly25 using original firmware in roller mode.
name:A_11b1_shelly25_roller_invert_1
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*shellies.*
desc:shelly25 using original firmware. <br>NOTE: shelly25 roller operated, change settings first!
par:DEVNAME;Shellyswitch25 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
attr DEVICE comment  Shelly 2.5 in Roller-Mode. 0=opened / 100=closed
attr DEVICE setList \
  open:noArg shellies/DEVNAME/roller/0/command open\
  close:noArg shellies/DEVNAME/roller/0/command close\
  half:noArg shellies/DEVNAME/roller/0/command/pos 50\
  stop:noArg shellies/DEVNAME/roller/0/command stop\
  pct:slider,0,1,100 {"shellies/DEVNAME/roller/0/command/pos ".(100-$EVTPART1)}\
  x_recalibration:noArg shellies/DEVNAME/roller/0/command rc\
  x_update:noArg shellies/DEVNAME/command update_fw\
  x_mqttcom shellies/DEVNAME/command $EVTPART1
attr DEVICE readingList \
  shellies/DEVNAME/roller/0/pos:.* {'pct' => 100-$EVENT}\
  shellies/DEVNAME/status/0/rollers:.* power\
  shellies/DEVNAME/online:.* online\
  shellies/DEVNAME/announce:.* { json2nameValue($EVENT) }\
  shellies/DEVNAME/roller/0:.* current\
  shellies/DEVNAME/roller/0:open {{'state' => 'opening'}}\
  shellies/DEVNAME/roller/0:close {{'state' => 'closing'}}\
  shellies/DEVNAME/roller/0/pos:.* {'state' => 100-$EVENT}\
  shellies/DEVNAME/input/1:.* input1\
  shellies/DEVNAME/input/0:.* input0\
  shellies/DEVNAME/relay/power:.* power\
  shellies/DEVNAME/relay/energy:.* energy\
  shellies/DEVNAME/temperature:.* temperature\
  shellies/DEVNAME/overtemperature:.* overtemperature
attr DEVICE devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 100:fts_shutter_100 0:fts_shutter_10 9\d:fts_shutter_90 8\d:fts_shutter_80 7\d:fts_shutter_70 6\d:fts_shutter_60 5\d:fts_shutter_50 4\d:fts_shutter_40 3\d:fts_shutter_30 2\d:fts_shutter_20 1\d:fts_shutter_10 0\d.*:fts_shutter_10 set_.*:fts_shutter_updown
attr DEVICE cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr DEVICE webCmd :open:close:half:stop:pct
attr DEVICE stateFormat <a href="http://ip" target="_blank">\
online\
</a>\
state
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE setStateList open close half stop pct
attr DEVICE model A_11b1_shelly25_roller



Das gleiche Teil dann nochmal umgekehrt. Hier ist die Anzeige HM like:
# shelly25 using original firmware in roller mode.
name:A_11b1_shelly25_roller_invert_0
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*shellies.*
desc:shelly25 using original firmware. <br>NOTE: shelly25 roller operated, change settings first!
par:DEVNAME;Shellyswitch25 name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
attr DEVICE comment Shelly 2.5 in Roller-Mode. 100=opened / 0=closed
attr DEVICE setList \
  open:noArg shellies/DEVNAME/roller/0/command open\
  close:noArg shellies/DEVNAME/roller/0/command close\
  half:noArg shellies/DEVNAME/roller/0/command/pos 50\
  stop:noArg shellies/DEVNAME/roller/0/command stop\
  pct:slider,0,1,100 shellies/DEVNAME/roller/0/command/pos $EVTPART1\
  x_recalibration:noArg shellies/DEVNAME/roller/0/command rc\
  x_update:noArg shellies/DEVNAME/command update_fw\
  x_mqttcom shellies/DEVNAME/command $EVTPART1
attr DEVICE readingList \
  shellies/DEVNAME/roller/0/pos:.* pct\
  shellies/DEVNAME/status/0/rollers:.* power\
  shellies/DEVNAME/online:.* online\
  shellies/DEVNAME/announce:.* { json2nameValue($EVENT) }\
  shellies/DEVNAME/roller/0:.* current\
  shellies/DEVNAME/roller/0:open {{'state' => 'opening'}}\
  shellies/DEVNAME/roller/0:close {{'state' => 'closing'}}\
  shellies/DEVNAME/roller/0/pos:.* state\
  shellies/DEVNAME/input/1:.* input1\
  shellies/DEVNAME/input/0:.* input0\
  shellies/DEVNAME/relay/power:.* power\
  shellies/DEVNAME/relay/energy:.* energy\
  shellies/DEVNAME/temperature:.* temperature\
  shellies/DEVNAME/overtemperature:.* overtemperature
  attr DEVICE devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 9\d:fts_shutter_10 8\d:fts_shutter_20 7\d:fts_shutter_30 6\d:fts_shutter_40 5\d:fts_shutter_50 4\d:fts_shutter_60 3\d:fts_shutter_70 2\d:fts_shutter_80 1\d:fts_shutter_90 0\d:fts_shutter_100 set_.*:fts_shutter_updown
attr DEVICE cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr DEVICE webCmd :open:close:half:stop:pct
attr DEVICE stateFormat <a href="http://ip" target="_blank">\
online\
</a>\
state
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE setStateList open close half stop pct
attr DEVICE model A_11b1_shelly25_roller


Zu invert_1
Man sollte aber beachten - Es geht hier NUR UM DIE ANZEIGE DER PCT. Die Steuerung habe ich im invert_1 Template einfach "verarscht". Der Shelly hat weiterhin die Werte, die er brauch bzw. haben will.
FHEM sagt z.B. 20% und sendet an den Shelly 80%. Das ist aktuell nicht leichter möglich (für mich).

Danke für Eure zahlreichen Antworten und die Unterstützung!

PS: Für die, die auf Temperatur und Power Werte stehen könnte man stateFormat wie folgt anpassen:
<a href="http://ip" target="_blank">
online
</a>
state
<br>
Aktuell: power W / Temperatur: temperature °C


Ich selber brauche das nicht, da ich es bei einem Rollo unnötig finde. Für anders denkende -> Siehe Bild (<br> weg lassen wenn es daneben stehen soll).

FRAGE: Was ich mich frage ist, warum in devStateIcon, bei eindeutigen Werten, immer noch alle z.B. 3\d.* schreiben. Reicht doch 3\d als Regex. Also zumindest bei diesen Geräten. Das ist keine pauschal auf alle Geräte bezogene Aussage!

Beta-User

Zitat von: DasQ am 17 Mai 2019, 12:48:37
dann statt ? (fragezeichen)
etwas in der art
Das "?" ist doch in der IT weit verbreitet, um für alles mögliche Hilfe zu bekommen... Sehe wirklich keine Veranlassung, da um Rudi's Zeit zu betteln :P .



Das "pm"-template habe ich umbenannt und eine desc eingefügt (=> "?"); würde sich für die roller auch gut machen, die ich ansonsten erst mal fast so übernommen habe...

@87insane:
M.E. ist das "inverted" noch nicht "fertig" - weniger wegen des templates, aber m.E. kann man so Rollläden nicht sinnvoll auf 50% kalibrieren (Achse wird dicker...). Es wäre besser, das mit dem swap nochmal zu checken (es gab keine Rückmeldung zu meinem publish-Vorschlag;.das könnte man - wenn es funktioniert - auch via template machen ;) (ähnlich wie die Kleinschriebung für on/off bei den tasmotas).
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

87insane

#366
Da die FW in meinen augen noch nicht fertig. Eine neue Version ist auch schon angekündigt. In der neuen FW sollte sich einiges ändern. Habe das erst mal so gemacht damit man es schön nutzen kann. Optionen zu aktivieren von denen keiner weiß, finde ich an der stelle mit der FW nicht gut. Hier würde ich ab der neuen FW direkt weiter machen. Alles was man vorher macht könnte Verschwendung sein.

Zum Thema Swap werde ich noch testen müssen. Hatte nur erstmal den Garten usw fertig zu machen. Meine fresse dieses Unkraut bringt mich noch zum ausrasten :-P

Man kann die Rollos zwar kalibrieren aber in der aktuellen FW ist es so das diese nur rauf und runter messen. Es gibt keine 50% sind in echt nur 30% oder so Option. Da es aber auch keine richtige Option für half gibt ist dort im Template eine 50 eingetragen. Kann jeder auf seine Bedürfnisse anpassen..

Ich selber bin zufrieden mit der schnellen Lösung und es war ein schönes Training. Auch wenn das nur 3 kleine Dinge waren habe ich wichtige Dinge gelernt.

Also...wünsche oder Verbesserungen nehme ich gern auf aber bearbeitet werden die ab FW 1.5. außer die Funktion wäre beeinträchtigt. Dann natürlich sofort. Swap teste ich aber noch.

87insane

Sooooo FW 1.5 ist raus.
Brav wie sie sind wurde Swap mit eingebaut in der FW. Am WE teste ich es den wert über mqtt zu ändern.

An der stelle möchte ich erwähnen das gute Ideen mit Begründung sofort in die neuen FW mit einfließen. Selten habe ich das so erlebt. Super :)

Hinzu sind im 2.5er shelly 2 neue readings. Würde am we also eine neue Version des templates abgeben. Ist alles nix Welten bewegendes.
Anbei ein Screenshot und das was die changelog nennen.

Prof. Dr. Peter Henning

ZitatEs gibt keine 50% sind in echt nur 30% oder so Option

Das wäre ein wenig viel verlangt - der Zusammenhang ist alles Andere als linear und sehr stark vom individuellen Rollladen abhängig.

LG

pah

87insane

Ja das ist "viel" aber in tasmota geht das. Sogar sehr gut. Man muss hoch/runter einstellen und danach das Rollo auf die gewünschte 50% Position fahren. Danach setzt man diesen Prozent Satz als 50% ... Das ist für mich schon sehr gut gelöst. So ist man komplett individuell und hat auch vernünftige Fahrten.

Prof. Dr. Peter Henning

 ;D
Einen nichtlinearen Zusammenhang mit einer Stützstelle einrichten ?
Ich lach mich scheckig...

LG

pah

87insane

Du bist ja sehr gut in Perl und programmieren an sich. Schau dir mal den Rollo fork an, in der anleitung für tasmota Rollo mit Sonoff T1 Schaltern. Du wirst im Code sicherlich entdecken warum es so gut geht. Es ist sicher nicht so gut wie als würde der Stromverbrauch ende und Anfang markieren usw. Dazu speziell auf das Rollo angepasst.... Aber es geht gut.

Gesendet von meinem LG-H850 mit Tapatalk


Prof. Dr. Peter Henning

ZitatDu bist ja sehr gut in Perl und programmieren an sich
Danke, allerdings bin ich eher "gut" in mathematisch-physikalischen Fragestellungen, und darum finde ich das nach wie vor lustig.

In meinen Rollladensteuerungen ist das übrigens wirklich mit Hilfe nichtlinearer Funktionen gelöst, die auch die unterschiedliche Dicke des Rollladenpaketes beim Abrollen mit einbeziehen.

LG

pah

Beta-User

Zitat von: Prof. Dr. Peter Henning am 23 Mai 2019, 06:42:18
In meinen Rollladensteuerungen ist das übrigens wirklich mit Hilfe nichtlinearer Funktionen gelöst, die auch die unterschiedliche Dicke des Rollladenpaketes beim Abrollen mit einbeziehen.
Was da in dem Code steckt, den von 87insane da im Einsatz hat, sieht für mich auch nicht nach einer linearen Funktion aus:

"shuttercoeff" in https://github.com/stefanbode/Sonoff-Tasmota/blob/master/sonoff/xdrv_97_shutter.ino

Kann mich aber auch täuschen ;) .
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

87insane

Egal wie es gemacht wurde. Es ist ja lauffähig. Ich selber brauche 50% nicht mal. Hab es eingestellt aber nutze es nicht. Fahre die rollos eh meist komplett oder so das nur spalten offen sind.

Sooo erst mal einen schönen Tag [emoji5]

Gesendet von meinem LG-H850 mit Tapatalk