Hallo zusammen,
bei mir klappt die Installation des Mqtt-Brokers Mosquitto nicht. Bin zunächst nach folgendem Video vorgegangen. Ging aber nicht installieren.
Dann hab ich herausgefunden das ich bei der Stretch Version nur installieren sollte:
Also folgedenden Befehl eingegeben:
pi@raspberrypi:~ $ sudo apt-get install mosquitto mosquitto-clients
Aber es kam folgenden Meldung:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mosquitto : Depends: libssl1.0.0 (>= 1.0.0) but it is not installable
Depends: libwebsockets3 (>= 1.2) but it is not installable
mosquitto-clients : Depends: libmosquitto1 (= 1.5.4-0mosquitto2~jessie1) but it is not going to be installed
N: Ignoring file 'mosquitto-jessie.list.2' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
N: Ignoring file 'mosquitto-jessie.list.1' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
E: Unable to correct problems, you have held broken packages.
Was meint Ihr woran liegt der Fehler. Muss denke ich was mit den fehlenden Paketen libsll1.0.0 und libwebsockets3 zu tun haben.
Nur wie bekomme ich die?
Noch meine Version/Release:
pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Vielen Dank
Was sagt cat /etc/apt/sources.list
?
pi@raspberrypi:~ $ cat /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free
fhem> update
fhem> define m2s MQTT2_SERVER 1883 global
fhem> attr m2s autocreate
:)
Okay hab ich mal so ausgeführt.
Und wie bekomme ich jetzt mit diesem Modul z.B. meine Sonoff Tasmota S20 in FHEM eingebunden?
- Im Sonoff Menu MQTT aktivieren, und den MQTT-Host auf dem FHEM-Server setzen, Port 1883.
- Wg. autocreate wird automatisch ein MQTT2_DEVICE angelegt, und die Readings werden automatisch gefuellt.
- Nach dem update morgen (sorry, das habe ich erst heute frueh eingebaut) kann man in der FHEMWEB-Detailansicht dieses Geraetes "set NAME attrTemplate sonoff_tasmota_1ch" ausfuehren, was die Attribute stateFormat und setList setzt, damit kann man das Geraet schalten, und Status (ON/OFF) wird als Icon sichtbar. Achtung fuer voreilige SVN-Updater: es wurden mehrere Dateien angepasst.
Ergänzend solltest du die sources wieder bereinigen.
Die jessie-Quellen haben da nichts verloren... Am einfachsten "mc" auf dem Pi installieren und mal nachsehen, welche Dateien im sources.d-Verzeichnis drin sind (oder dieser veralteten Anleitung "rückwärts" folgen...).
Zitat von: rudolfkoenig am 19 November 2018, 21:09:01
- Im Sonoff Menu MQTT aktivieren, und den MQTT-Host auf dem FHEM-Server setzen, Port 1883.
- Wg. autocreate wird automatisch ein MQTT2_DEVICE angelegt, und die Readings werden automatisch gefuellt.
- Nach dem update morgen (sorry, das habe ich erst heute frueh eingebaut) kann man in der FHEMWEB-Detailansicht dieses Geraetes "set NAME attrTemplate sonoff_tasmota_1ch" ausfuehren, was die Attribute stateFormat und setList setzt, damit kann man das Geraet schalten, und Status (ON/OFF) wird als Icon sichtbar. Achtung fuer voreilige SVN-Updater: es wurden mehrere Dateien angepasst.
Okay nachdem ich gestern die S20 setlist erfolglos versucht habe einzurichten, heute das selbe nach dem update.
Habe das tasmota_1ch template hinzugefügt. Alle Attribute wurden gesetzt. Aber wenn ich z.B. auf Off klicke passiert nichts. Im Log des Sonoff passiert auch nichts.
IODev m2s
readingList
DVES_375D29:/SmartHome/Esszimmer/Stehlampe/tele/LWT:.* LWT
DVES_375D29:/SmartHome/Esszimmer/Stehlampe/cmnd/POWER:.* POWER
DVES_375D29:/SmartHome/Esszimmer/Stehlampe/stat/RESULT:.* { json2nameValue($EVENT) }
DVES_375D29:/SmartHome/Esszimmer/Stehlampe/stat/POWER:.* POWER
DVES_375D29:/SmartHome/Esszimmer/Stehlampe/tele/UPTIME:.* { json2nameValue($EVENT) }
DVES_375D29:/SmartHome/Esszimmer/Stehlampe/tele/STATE:.* { json2nameValue($EVENT) }
room
MQTT2_DEVICE
setList
off:noArg cmnd//SmartHome/Esszimmer/Stehlampe/POWER1 0
on:noArg cmnd//SmartHome/Esszimmer/Stehlampe/POWER1 1
toggle:noArg cmnd//SmartHome/Esszimmer/Stehlampe/POWER1 2
stateFormat
POWER1
Du hast dein MQTT Geraet anders konfiguriert, als ich bzw. als ich das fuer moeglich gehalten habe, und deswegen hat die automatische Topic-Erkennung nicht funktioniert.
Kannst Du bitte
- von deiner Tasmota-MQTT Konfigurationsseite hier ein Screenshot einhaengen?
- die Ausgabe des FHEM-Befehls "list TYPE=MQTT2_SERVER subscriptions" hier anhaengen.
Okay,
hier die Ausgabe des FHEM- Befehles:
m2s_192.168.188.162_25837 /SmartHome/Esszimmer/Stehlampe/cmnd/#=1542818836.94175 /SmartHome/Esszimmer/sonoffs/cmnd/#=1542818836.94534 cmnd/DVES_375D29/#=1542818836.98703
Und im Anhang ein Screeshot meiner Mqtt - Configseite
Danke.
Die korrekte Version von setList ist in deinem Fall
off:noArg /SmartHome/Esszimmer/Stehlampe/cmnd/POWER1 0
on:noArg /SmartHome/Esszimmer/Stehlampe/cmnd/POWER1 1
toggle:noArg /SmartHome/Esszimmer/Stehlampe/cmnd/POWER1 2
Ich habe jetzt mqtt2.template angepasst, damit dieser Fall auch behandelt wird, der update ist wie ueblich morgen ab 8 verfuegbar.
Nur interessenhalber: hast Du in %fulltopic% die Reihenfolge von %topic% und %prefix% verstellt, oder war das die Voreinstellung?
Is andersrum voreingestellt
https://github.com/arendst/Sonoff-Tasmota/wiki/MQTT-Overview
BTW. Hier ein List von mein sonoff tasmota Touch t1 2kanal
Und ich bekomm das mit den Buttons auch noch nicht wirklich gebacken
Internals:
CID SonOff_Wz
DEF SonOff_Wz
DEVICETOPIC MQTT2_SonOff_Wz
IODev MQTT2_Broker
LASTInputDev MQTT2_Broker
MQTT2_Broker_MSGCNT 119
MQTT2_Broker_TIME 2018-11-22 18:56:43
MSGCNT 119
NAME MQTT2_SonOff_Wz
NR 125
STATE off2
TYPE MQTT2_DEVICE
Helper:
DBLOG:
LWT:
DBLogging:
TIME 1542886076.00191
VALUE online
POWER1:
DBLogging:
TIME 1542909403.46024
VALUE ON
POWER2:
DBLogging:
TIME 1542909403.46024
VALUE OFF
Time:
DBLogging:
TIME 1542909403.46024
VALUE 2018-11-22T18:56:43
Uptime:
DBLogging:
TIME 1542909403.46024
VALUE 13T08:49:57
Vcc:
DBLogging:
TIME 1542909403.46024
VALUE 3.170
Wifi_AP:
DBLogging:
TIME 1542909403.46024
VALUE 1
Wifi_BSSId:
DBLogging:
TIME 1542909403.46024
VALUE 7C:FF:4D:EC:69:23
Wifi_Channel:
DBLogging:
TIME 1542909403.46024
VALUE 6
Wifi_RSSI:
DBLogging:
TIME 1542909403.46024
VALUE 90
Wifi_SSId:
DBLogging:
TIME 1542909403.46024
VALUE 1
state:
DBLogging:
TIME 1542888524.23105
VALUE off2
READINGS:
2018-11-22 12:27:55 LWT online
2018-11-22 12:27:56 POWER
2018-11-22 18:56:43 POWER1 ON
2018-11-22 18:56:43 POWER2 OFF
2018-11-22 18:56:43 Time 2018-11-22T18:56:43
2018-11-22 18:56:43 Uptime 13T08:49:57
2018-11-22 18:56:43 Vcc 3.170
2018-11-22 18:56:43 Wifi_AP 1
2018-11-22 18:56:43 Wifi_BSSId 7C:FF:4D:EC:69:23
2018-11-22 18:56:43 Wifi_Channel 6
2018-11-22 18:56:43 Wifi_RSSI 90
2018-11-22 18:56:43 Wifi_SSId 1
2018-11-22 13:08:44 state off2
Attributes:
IODev MQTT2_Broker
devStateIcon on:off
group Licht
readingList SonOff_Wz:tele/sonoff_Wz/LWT:.* LWT
SonOff_Wz:cmnd/sonoff_Wz/POWER:.* POWER
SonOff_Wz:tele/sonoff_Wz/INFO1:.* { json2nameValue($EVENT) }
SonOff_Wz:tele/sonoff_Wz/INFO2:.* { json2nameValue($EVENT) }
SonOff_Wz:tele/sonoff_Wz/INFO3:.* { json2nameValue($EVENT) }
SonOff_Wz:stat/sonoff_Wz/RESULT:.* { json2nameValue($EVENT) }
SonOff_Wz:stat/sonoff_Wz/POWER1:.* POWER1
SonOff_Wz:stat/sonoff_Wz/RESULT:.* { json2nameValue($EVENT) }
SonOff_Wz:stat/sonoff_Wz/POWER2:.* POWER2
SonOff_Wz:tele/sonoff_Wz/STATE:.* { json2nameValue($EVENT) }
SonOff_Wz:tele/sonoff_Wz/UPTIME:.* { json2nameValue($EVENT) }
room Wohnzimmer
setList on1 cmnd/sonoff_Wz/POWER1 on
off1 cmnd/sonoff_Wz/POWER1 off
on2 cmnd/sonoff_Wz/POWER2 on
off2 cmnd/sonoff_Wz/POWER2 off
reboot cmnd/sonoff_Wz/Restart 1
webCmd on1:off1:on2:off2:reboot
webCmdLabel on1:off1
on2:off2
:reboot
ZitatUnd ich bekomm das mit den Buttons auch noch nicht wirklich gebacken
Vorschlag: Du entfernst MQTT2_SonOff_Wz, laesst es neu anlegen, und setzt attrTemplate auf sonoff_tasmota_2ch. Dabei wird setList und stateFormat fuer das Original gesetzt und eine zweite Instanz fuer die Bedienung von Kanal 2 erstellt.
Du kannst es auch ohne Entfernen versuchen, aber ich weiss nicht, ob es mit den bereit gesetzten webCmd, devStateIcon, etc richtig funktioniert, da ungetestet. Achtung: fuer die "verdrehte" Fulltopic Variante muss man mqtt.template aus dem SVN holen, oder morgen ein update machen.
gesagt getan
ein zwei sachen die mich jetzt etwas stören sind, das ich nun 2 instanzen hab. Ok damit kann ich leben, wobei es in einem schöner wär.
Dann die namensvergabe
-MQTT2_SonOff_Wz
-MQTT2_SonOff_Wz_CH2
find ich suboptimal da eindeutig zweideutig
ein kleinen schönheitsfehler (kann aber auch so gewollt sein, die einrückung)
off:noArg cmnd/sonoff_Wz/POWER2 0
on:noArg cmnd/sonoff_Wz/POWER2 1
toggle:noArg cmnd/sonoff_Wz/POWER2 2
beim klick auf das lampensymbol geht der nur ON und nicht OFF
p.s. Wunsch fürs template noch ein device "ALL" also beide kanäle
Zitatein zwei sachen die mich jetzt etwas stören sind, das ich nun 2 instanzen hab. Ok damit kann ich leben, wobei es in einem schöner wär.
Zwei Schalter in einer FHEM-Geraet verursacht eine Menge von Probleme, angefangen von der Darstellung ueber Schalten bis zur Auswertung der Events. Du kannst es gerne selber bauen, aber ohne Support :)
Wg Name: Es steht es dir frei sie umzubenennen.
Die Einrueckung ist etwas haesslicher in der FHEMWEB-Anzeige, dafuer etwas schoener im Template. Bin noch unsicher, was mir wichtiger ist.
Zitatbeim klick auf das lampensymbol geht der nur ON und nicht OFF
Ich meine, das laesst sich mit
attr DEVICE eventMap { dev=>{ON=>'on',OFF=>'off'} }
reparieren. Ich habe das ins template aufgenommen.
ZitatWunsch fürs template noch ein device "ALL" also beide kanäle
Siehe oben.
Mit structure oder devSpec kann man es auch loesen.
Danke für den tip (wichtig für mich, so als do and dont´s)
Nur noch kurz OT
Zu dem umbenennen, das mach ich vermutlich am besten im raw Definition.
Ich hatte nämlich immer gedacht das mit dem alias wäre der richtiger weg, aber die alias Namen sind schall und Rauch und dient echt nur zur Anzeige und können nicht anders verwendet werden( hab ich bei mein notifyern gemerkt) oder?
ZitatZu dem umbenennen, das mach ich vermutlich am besten im raw Definition.
Oder in der Eingabezeile:
rename oldName newName
Und ja, alias ist nur fuer die Anzeige.
vielleicht sollte man diesen thread teilen oder mal des topic umstricken, ich missbrauch ihn jetzt einfach weiter ... dient ja der sache ;)
also heut früh update gemacht und nochmals getestet. hab ja Zwei zimmer mit fast identischer konstelation.
Im setList ist nun ein / (Slash) zuviel drin.
xdefmod MQTT2_SonOff_KiGr_CH2 MQTT2_DEVICE SonOff_KiGr
attr MQTT2_SonOff_KiGr_CH2 IODev MQTT2_Broker
attr MQTT2_SonOff_KiGr_CH2 comment Channel 2 for MQTT2_SonOff_KiGr
attr MQTT2_SonOff_KiGr_CH2 eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr MQTT2_SonOff_KiGr_CH2 group Licht,MQTT2
attr MQTT2_SonOff_KiGr_CH2 readingList SonOff_KiGr:tele/sonoff_KiZi1/LWT:.* LWT\
SonOff_KiGr:cmnd/sonoff_KiZi1/POWER:.* POWER\
SonOff_KiGr:tele/sonoff_KiZi1/STATE:.* { json2nameValue($EVENT) }\
SonOff_KiGr:stat/sonoff_KiZi1/RESULT:.* { json2nameValue($EVENT) }\
SonOff_KiGr:stat/sonoff_KiZi1/POWER1:.* POWER1
attr MQTT2_SonOff_KiGr_CH2 room KinderZimmerGross
attr MQTT2_SonOff_KiGr_CH2 setList off:noArg cmnd//sonoff_KiZi1/POWER2 0\ <--- nach Cmnd und den folgenden zeilen noch 2 mal
on:noArg cmnd//sonoff_KiZi1/POWER2 1\
toggle:noArg cmnd//sonoff_KiZi1/POWER2 2
attr MQTT2_SonOff_KiGr_CH2 stateFormat POWER2
setstate MQTT2_SonOff_KiGr_CH2 off
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:22:40 POWER1 OFF
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 POWER2 OFF
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Time 2018-11-23T10:19:36
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Uptime 0T00:10:17
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Vcc 3.170
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Wifi_AP 1
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Wifi_BSSId 08:96:D7:86:0C:3D
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Wifi_Channel 6
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Wifi_RSSI 92
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:19:36 Wifi_SSId 1
setstate MQTT2_SonOff_KiGr_CH2 2018-11-23 10:22:41 state on
desweiteren hats dann noch zwei readings dazugebaut.
ich habs noch etwas umstortiert und so korrigiert (und ich mein Power ohne 1 oder 2 ist überflüssig)
defmod MQTT2_SonOff_KiGr_Led MQTT2_DEVICE SonOff_KiGr
attr MQTT2_SonOff_KiGr_Led IODev MQTT2_Broker
attr MQTT2_SonOff_KiGr_Led comment Channel 2 for MQTT2_SonOff_KiGr
attr MQTT2_SonOff_KiGr_Led eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr MQTT2_SonOff_KiGr_Led group Licht,MQTT2
attr MQTT2_SonOff_KiGr_Led readingList SonOff_KiGr:tele/sonoff_KiZi1/LWT:.* LWT\
SonOff_KiGr:stat/sonoff_KiZi1/POWER1:.* POWER1\
SonOff_KiGr:stat/sonoff_KiZi1/POWER2:.* POWER2\
SonOff_KiGr:tele/sonoff_KiZi1/STATE:.* { json2nameValue($EVENT) }\
SonOff_KiGr:stat/sonoff_KiZi1/RESULT:.* { json2nameValue($EVENT) }\
SonOff_KiGr:tele/sonoff_KiZi1/UPTIME:.* { json2nameValue($EVENT) }
attr MQTT2_SonOff_KiGr_Led room KinderZimmerGross
attr MQTT2_SonOff_KiGr_Led setList off:noArg cmnd/sonoff_KiZi1/POWER2 0\
on:noArg cmnd/sonoff_KiZi1/POWER2 1\
toggle:noArg cmnd/sonoff_KiZi1/POWER2 2
attr MQTT2_SonOff_KiGr_Led stateFormat POWER2
setstate MQTT2_SonOff_KiGr_Led off
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:08:04 POWER1 OFF
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:08:07 POWER2 OFF
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Time 2018-11-23T11:04:36
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Uptime 0T00:55:17
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Vcc 3.170
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Wifi_AP 1
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Wifi_BSSId 08:96:D7:86:0C:3D
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Wifi_Channel 6
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Wifi_RSSI 92
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:04:36 Wifi_SSId 1
setstate MQTT2_SonOff_KiGr_Led 2018-11-23 11:08:06 state off
ZitatIm setList ist nun ein / (Slash) zuviel drin.
Danke fuer den Hinweis.
Ich habe das Template fuer sonoff_tasmota_1ch nachgefixt und getestet, aber vergessen es beim 2ch nachzuziehen.
Habe es jetzt gemacht.
Zitat von: rudolfkoenig am 22 November 2018, 10:00:31
Nur interessenhalber: hast Du in %fulltopic% die Reihenfolge von %topic% und %prefix% verstellt, oder war das die Voreinstellung?
Habe ich verstellt, war nicht die Voreinstellung.
Noch ein Update habe nun erfolgreich zwei Sonoff S20 eingebunden.
Aktuell will ich 2 POW´s einbinden. Hat soweit auch mit autocreate geklappt. Habe dann das 1ch Template benutzt nun kann ich die Dose auch schalten.
Ziel soll jetzt aber noch sein die Energiemessung zu nutzen.
Es sollte wenn Waschmaschine/Trockner fertig ist, eine Meldung/Pushnachricht aufs Handy (Telegram?) geschickt werden?
Wie sollte ich dann weiter verfahren.
Die Readings vom POW sind da:
ENERGY_ApparentPower
0
ENERGY_Current
0.000
ENERGY_Factor
0.00
ENERGY_Period
0
ENERGY_Power
0
ENERGY_ReactivePower
0
ENERGY_Today
0.000
ENERGY_Total
0.000
ENERGY_TotalStartTime
ENERGY_Voltage
0
ENERGY_Yesterday
0.000
/code]