MQTT2 für Worx Landroid Mähroboter

Begonnen von Otto123, 09 Juni 2020, 13:55:43

Vorheriges Thema - Nächstes Thema

Otto123

Ist meine Beschreibung so ungenau?
scp "d:\Downloads\V0.0.24 - Net\AWS.p12" pi@raspib3:
Kopiert ins Homeverzeichnis vom User Pi  ;)
"openssl pkcs12 -in /home/pi/AWS.p12 ...
Liest aus dem Homeverzeichnis User Pi  ::)
Das mit den von mir angegeben Befehlen splittet das Zertifikat in das Homeverzeichnis von User fhem -> /opt/fhem/

Warum nimmst Du nicht einfach meine Anleitung? Was ist daran unverständlich?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eisenhauer1987

Morgen!

Ich habe das ganze auch mal über MQTT eingerichtet, funktioniert! Es paar Fragen hätte ich aber noch. Wenn man jetzt die Startzeit anpassen will, wie ist das machbar? Außerdem wäre es klasse wenn die Readings lesbar übersetzt werden. Man kann sich zwar was zusammenreimen, aber übersichtlich ist es noch nicht.

Grüße

marvin78

Zitat von: eisenhauer1987 am 12 Juni 2020, 08:04:33
Morgen!

Ich habe das ganze auch mal über MQTT eingerichtet, funktioniert! Es paar Fragen hätte ich aber noch. Wenn man jetzt die Startzeit anpassen will, wie ist das machbar? Außerdem wäre es klasse wenn die Readings lesbar übersetzt werden. Man kann sich zwar was zusammenreimen, aber übersichtlich ist es noch nicht.

Grüße

Es steht dir doch frei, das zu tun. Das ist der Vorteil von generischen Devices: Du kannst es nennen, wie du möchtest.

Otto123

#18
Welche Readings fehlen Dir lesbar? Ich gebe zu, das mit den Readings war von mir ein "erster" Schuß. Klar kann man die alle übersetzen, das Muster vom jetzigen Template zeigt ja auch genau wie. Da können wir das Template auch jederzeit perfektionieren.
In der setList sieht man auch wie man das mit den Zeiten machen müsste. Um da weiter zu entwickeln ist erst mal ein set x-raw-payload sinnvoll, da lässt sich gut probieren. Also setList ergänzen mit (BASE_TOPIC/DEV_ID austauschen mit den echten Werten BoardID und MAC)
x_raw_payload:textField { my $payload = $EVENT;$payload =~ s/$EVTPART0 //g; qq(BASE_TOPIC/DEV_ID/commandIn $payload)}
Der komplette mqtt/json String steht ja weiter oben, davon muss sicherlich dieser Teil übertragen werden:
Edit: gerade getestet funktioniert genau so: Startzeit,Dauer,Kantenschnitt
    {"sc":{"d":[
      ["00:00",0,0],
      ["09:00",120,1],
      ["00:00",0,0],
      ["09:00",60,1],
      ["09:00",60,1],
      ["00:00",0,0],
      ["00:00",0,0]]}}

Dann braucht man noch eine schöne Eingabemöglichkeit :)

Ich kann da jetzt erstmal 14 Tage nicht dran arbeiten, aber Hilfe ist willkommen :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eisenhauer1987

Das mit dem fehlenden Reading ist quatsch, wenn man mal genau guckt sind ja alle im Klartext da^^.

Nun wollte ich noch das verändern des Mähkalenders ermöglichen. Dazu folgende setlist:
setmowtimes:textField { my $payload = $EVENT;$payload =~ s/$EVTPART0 //g; qq(PRM100/98D86318D372/commandIn {"sc":{"d":[$payload]}})}

Ein manuelles:

set Garten.LandroidM setmowtimes ["00:00",0,0],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",120,1]

funktioniert damit. Allerdings funktioniert es nicht in einem DOIF (Perl). Ich denke es hat mit den [] zu tun. Ideen?


{if ( [09:30|AT SA] or ["test:on"])
  {
     fhem("set Garten.LandroidM setmowtimes ["00:00",0,0],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",120,1]");
  }
}


Fehler werden keine geworfen.

Otto123

#20
Das wird wohl so sein :(
Ideen:
1. Im DOIF Thread mal die Frage aufwerfen: Was machen wenn [ einfach Text sein soll?
2. Escapen? \[ \]
3. Analog zu $payload eine Variable füllen und diese im set Befehl übergeben? Dann läuft es ev. nicht durch den Interpreter?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

#21
Hinweis:
Wie im anderen Thread vermerkt gibt es eine neue Funktion (One Time Scheduler) und damit eine Änderung im json String ab Firmware 3.13 die momentan für die 2019 Modelle verteilt wird.
Ich werde mir das die nächsten Tage anschauen.
Edit:
Ich habe mal ein Update gemacht und kann das hier beschriebene Verhalten mit der MQTT2 Variante nicht feststellen. Die Zeitverzögerung lässt sich ganz normal einstellen. Aber vielleicht übersehe ich was  ???
Edit 3: Ich habe das Problem gefunden.
Mit der iobroker.worx Lösung wird der json jedesmal komplett gesendet. Beispiel:
DEBUG: Worxcloud MQTT sendMessage to 2019xxxxxxxxxxxxxxxx Message: {"sc":{"m":1,"distm":0,"ots":{"bc":0,"wtm":100},"p":-100,"d":[["00:00",0,0],["00:00",0,1],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,1],["00:00",0,0]]}}Steht also zufällig im ots bc und/oder wtm schon ein Wert, führt jede Konfigänderung für Zeitplan oder mowerTimeCorrection (-100% - 100%) zum sofortigen Start durch ots.

Edit2: Was in der App noch  nicht geht, geht per mqtt sofort (bei Firmware 3.13): AdHoc mähen für eine bestimmte Zeit mit optionalen Kantenschnitt:
Für die Testphase - mähen 10 min ohne Kantenschnitt (siehe):
set <mower> x_raw_payload {"sc":{"ots":{"bc":0,"wtm":10}}}
Offenbar nimmt er nur bestimmte Zeitbereiche 10 min - xxxx? 
Alles wtm < 10 setzt er offenbar auf 0 und tut bei bc:0 nichts. Bei bc:1 macht er Kantenschnitt aus der Ladestation heraus! ;)
Also nur Kantenschnitt:
set <mower> x_raw_payload {"sc":{"ots":{"bc":1,"wtm":0}}}

Edit4:
Hier habe ich noch den Hinweis für distm gefunden. Es handelt sich offenbar um ein temporäres Aussetzen des Mähplanes (disturb?) in Minuten.
set <mower> x_raw_payload {"sc":{"distm":1440}}sollte also den Mähplan für einen Tag außer Kraft setzen (Partymodus). Hab ich bisher nicht getestet.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Hallo,

ab morgen gibt es ein neues Template per Update.
Dort sind die zusätzlichen Funktionen für die neue Firmware 3.13 eingebaut.
- ad Hoc Kantenschnitt
- ad Hoc Rasenmähen für xx minuten
- Party modus für xx minuten

Nach dem Update die Templates neu initialisieren:
{ AttrTemplate_Initialize() }
Oder für sofort / ohne komplettes update:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eldrik

Hi,
gerade einmal mit der zweiten Befehlskette ausprobiert, kein neues Template vorhanden.

Greetz
Eldrik

Otto123

Hallo Eldrik,

was zeigt Dir
{qx( ls -lha ./FHEM/lib/AttrTemplate/)}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eldrik

Hi,

Den Zeitstempel der Datei zum Zeitpunkt des Download

fhem dialout 249K Jul  2 13:04 mqtt2.template

Greetz
Eldrik

TomLee

Zitatgerade einmal mit der zweiten Befehlskette ausprobiert, kein neues Template vorhanden.

Wie genau meinst du das, erwartest du jetzt ein zweites Template oder wird erst gar keins im setter <device> attrTemplate angezeigt?

Hab keinen Mähroboter aber ein Template wird mir nach update in einem MQTT2_DEVICE angezeigt oder auch nach der "Befehlskette".

Wenn eines angezeigt wird, welche attrTemplateVersion bekommst du angezeigt wenn du dieses nur auswählst ?

ganz unten bei setreading DEVICE attrTemplateVersion ...

eldrik

#27
Zitat von: TomLee am 02 Juli 2020, 18:52:34
Wie genau meinst du das, erwartest du jetzt ein zweites Template oder wird erst gar keins im setter <device> attrTemplate angezeigt?

Hab keinen Mähroboter aber ein Template wird mir nach update in einem MQTT2_DEVICE angezeigt oder auch nach der "Befehlskette".

Wenn eines angezeigt wird, welche attrTemplateVersion bekommst du angezeigt wenn du dieses nur auswählst ?

ganz unten bei setreading DEVICE attrTemplateVersion ...

nein ich erwarte selbstverständlich kein zweites Template  :D die Version ist einfach weiterhin die alte attrTemplateVersion
20200607


Das Logfile hatte auch nichts unauffälliges gemeldet, daher der Post.

2020.07.02 19:45:02.848 1: SVN download of FHEM/lib/AttrTemplate/mqtt2.template to FHEM/lib/AttrTemplate/mqtt2.template finished
2020.07.02 19:45:03.572 2: AttrTemplates: got 180 entries


Greetz
Eldrik

TomLee

Bei mir steht 20200701 drin, wie im svn

Schon heute mal ganz normal mit update und anschliessendem shutdown restart versucht ?

Otto123

Hast Du vorher mal das Template aus meinem Github geladen? Datum und Größe sehen gut aus, Version stimmt nicht.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz