FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kleinz am 10 Januar 2021, 11:51:32

Titel: Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 11:51:32
So die Steuerung über SSH mit perl aufruf an Fhem klappt ja jetzt. aber die Reaktionszeiten finde ich etwas hoch ca 3 sekunden
Ich würde das ganze jetzt über MQTT machen.
in FHEM hab ich ich folgendes definiert.
#MQTT Server
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
setuuid MQTT2_FHEM_Server xxxxxxxx-xxxx-xxxx-xxxx-6069867b44d42722
attr MQTT2_FHEM_Server room Server

Wie kann ich nun testen ob der MQTT Server etwas empfängt.
Danke im voraus
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 12:25:36
Ok Verbindung geht
Fhem zeigt mir im Log ankommende Nachrichten an

2021-01-10 12:14:11 MQTT2_DEVICE MQTT2_xxxxxx_xxxx_xxxx_xxxx_6069867b44d42722 test: daten
Also ich sende
Topic = tesz
Message = daten

Wie nun aber muss der richtige Befehl aussehen.
Muss ich die devices die ich schalten will in mqtt definieren und kann dann
Topic:   Device  z.b   GHoma_12345
Message set on
Wenn ich einfach nur den befehl in topic und message setze
set GHoma_625e60 on    dann passiert nix ausser das es im log angezeigt wird

Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 10 Januar 2021, 14:23:24
Vielleicht hilft dir dieser Thread bzw. mein heutiger write-up zu MQTT_GENERIC_BRIDGE weiter: https://forum.fhem.de/index.php/topic,117423.msg1120252.html#msg1120252
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 18:21:22
Danke werde ich lesen ,darf ich dich per pn fragen wenn ich was nicht verstehe?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 10 Januar 2021, 18:34:18
Bitte offen fragen, dann haben ggf. auch andere was davon...
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 19:31:12
Ok so sieht meine fhem.cfg aus

#MQTT Server
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
setuuid MQTT2_FHEM_Server 5ff119e2-f33f-ac0a-54ad-6069867b44d42722
attr MQTT2_FHEM_Server room Server

define SYS_MQTT MQTT_DEVICE
attr SYS_MQTT userattr subscribeReading_cmnd
attr SYS_MQTT IODev MQTTGW
attr SYS_MQTT alias MQTT_Command
attr SYS_MQTT icon mqtt_device
attr SYS_MQTT room MQTT_Bridge
attr SYS_MQTT subscribeReading_cmnd fhem/Befehlausfuehren

# MQTT command notify
define n_SYS_MQTT_cmnd notify SYS_MQTT:cmnd:.* \
{\
  if($EVENT =~ qr/.*?: (.*)/p)\
  {\
    my $cmnd = $1;;\
    Log3 ($NAME,5,"execute mqtt command : ".$cmnd);;\
    fhem($cmnd);;\
  }\
}
attr n_SYS_MQTT_cmnd alias Befehle über MQTT in FHEM ausfuehren
attr n_SYS_MQTT_cmnd icon mqtt
attr n_SYS_MQTT_cmnd room FHEM notify


Wenn ich jetzt über mqtt folgendes im topic
set GHoma_625e60 state on
an den MQTT Server sende bwkomme ich diese Antwort

2021-01-10 19:25:15 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe set_GHoma_625e60_state_on: set GHoma_625e60 state on
2021-01-10 19:25:28 MQTT2_SERVER MQTT2_FHEM_Server nrclients: 8

Als Fehlermeldung von meiner APP bekomme ich

The arguments , ["set GHoma_625e60 state on"] are the wrong number of arguments for Publish
Note: You will not see another error reported for 5 seconds.

Lasse ich das state weg und setze es in 'set GHoma_xxxxx on'erhate ich das selbe von meiner APP
Ich habe verschiedene Kombinationen probiert .
Wie muss der Befehl aussehen den ich absetzen muss um ihn ein Device schalten zu lassen
?
Danke im voraus


Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 10 Januar 2021, 19:38:32
Meine sehr kritischen Anmerkungen zu dieser notify-Konstruktion hattest du nicht wahrgenommen, oder?

Ich kann dir helfen, das ganze mit MQTT_GENERIC_BRIDGE ohne notify etc. aufzugleisen, aber diesen anderen Unsinn (meine deutliche Meinung) supporte ich nicht. Daher hatte ich auch auf einen bestimmten Beitrag verwiesen und nicht auf den ersten Beitrag in diesem Thread...
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 19:40:46
Das war alles zu viel info.
Aber ich gehe gerne den weg wo du mir helfen kannst.
Mir gehts nur um das ergebnis nicht um den weg
Aber diese codeschnipsel habe ich nicht verstanden.
Also wie soll ich das ganze machen
#MQTT Server
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
setuuid MQTT2_FHEM_Server 5ff119e2-f33f-ac0a-54ad-6069867b44d42722
attr MQTT2_FHEM_Server room Server
das ist aber doch richtig oder

Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 10 Januar 2021, 19:45:07
Ja, bis dahin paßt es.

Dann das Perl-Modul installieren und FHEM neu starten.

Ab da dann bitte alle Code-Schnippsel über FHEMWEB eingeben, kein direktes edit in der cfg mehr!

Bitte im Wiki nach "Import von Code-Snippets" suchen und dann RAW-Definition-Code posten.
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 19:49:59
Aber ich glaube ich habe das perl modul drauf denn ich gebe die befehle mit perl /opt/fhem/fhem.pl xxxxxx ein und es klappt
soll ich trotzdem installieren
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 20:11:19
So habe es installiert und in welches Gerät soll die RAW definition rein ?
Ich denke mqtt2 server?
Welche schnipsel soll ich jetzt rein machen
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 10 Januar 2021, 21:17:38
Was ich nicht vestehe
Wenn ich als Topic set device on sende dann legt er in der fhem.cfg folgendes an.

define MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
setuuid MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe 5ffb5320-f33f-99d1-73b1-c3d757128790c7da
attr MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe IODev MQTT2_FHEM_Server
attr MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:GHoma_625e60\x20on:.* GHoma_625e60_on\
GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma_625e60\x20on:.* set_GHoma_625e60_on
attr MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe room MQTT2_DEVICE
define FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe FileLog ./log/MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe-%Y.log MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
setuuid FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe 5ffb5320-f33f-99d1-d5b6-0354fd99c247e192
attr FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe logtype text
attr FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe room MQTT2_DEVICE


Der Eventlog zeigt folgendes

2021.01.10 21:13:19 2 : autocreate: define MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_FHEM_Server
2021.01.10 21:13:19 2 : autocreate: define FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe FileLog ./log/MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe-%Y.log MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-10 21:13:19 Global global UNDEFINED MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_FHEM_Server
2021-01-10 21:13:19 Global global DEFINED MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-10 21:13:19 Global global DEFINED FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-10 21:13:19 Global global ATTR MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma_625e60\x20on:.* set_GHoma_625e60_on
2021-01-10 21:13:19 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe set_GHoma_625e60_on:


setze ich set device off
zeigt der Eventmonitor folgendes

2021-01-10 21:15:10 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe set_GHoma_625e60_off:



Er legt also doh ein mqtt2 device an oder ?
Muss ich jetzt nicht nur das event auswerten und sagen wenn das kommt mache das  ?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 11 Januar 2021, 08:08:46
Zitat von: kleinz am 10 Januar 2021, 21:17:38
Muss ich jetzt nicht nur das event auswerten und sagen wenn das kommt mache das  ?
So _kann_ man das machen. Aber wie ich in dem anderen Thread bereits deutlichst geäußert hatte, ist es einfach KEINE GUTE IDEE, FHEM-Befehle im Klartext via MQTT zu versenden.
Wenn du das unbedingt willst, findest du in dem genannten Thread auch eine Lösung, die direkt aus dem MQTT2_DEVICE den Befehl ausführt, was aber weiter NICHT EMPFEHLENSWERT bleibt.

Der Weg über MQTT_GENERIC_BRIDGE wäre, an das Zieldevice dann noch zwei Attribute zu bringen:

attr Licht_Essen mqttGB1Publish state:topic={"$base"}
attr Licht_Essen mqttGB1Subscribe state:stopic={"$base"}

Ersetze "Licht_Essen" durch deinen Device-Namen (GHoma_625e60?) und den von mir gewählten Präfix für die MQTT_GENERIC_BRIDGE (mqttGB1) durch deine eigenene Werte, und du kannst on und off senden und Empfangen wie hier (https://forum.fhem.de/index.php/topic,117423.msg1120540.html#msg1120540) dargestellt...
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 16:21:01
Ich würde es gerne so machen wie du meinst.
Also ich setze diese beiden attr ein und was muss ich noch machen.
Bin von der menge Code überfordert weil von verschiedenen Sachen geredet wird
Ich möchte Fhem als MQTT server und keinen externen.
Ich möchte es auch sicherer machen also nix inverschlüsselt wenn es geht.
Aber reicht es wenn ich meinen code nur um deine beiden attr ergänze oder muss ich dann noch was definieren?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 11 Januar 2021, 16:51:12
Also der Reihe nach:

1. Du brauchst eine laufende MQTT_GENERIC_BRIDGE. Diese beiden Befehle müssen daher ohne Beschwerden durchlaufen:

defmod MGB1 MQTT_GENERIC_BRIDGE mqttGB1
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0

(EDIT: code korrigiert)

"Im Prinzip" kannst du da an ein paar Stellen entscheiden, die Dinge anders zu benennen: MGB1, mqttGB1, FHEM_main und MQTT2FHEM bzw. FHEM2MQTT sind einfach Textbausteine, die mehr oder weniger beliebig gewählt sind, aber im Folgenden gehe ich davon aus, dass es in Sende- und Empfangsrichtung je einen _unterschiedlichen_ Topic gibt und der irgendwo auch $device enthält.

2. Wenn du MQTT2_SERVER verwendest und autocreate aktiv hast, solltest du ein MQTT2_DEVICE haben, das dir die gemeinsame Verwendung von MQTT_GENERIC_BRIDGE und autocreate ermöglicht:

define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE
attr MQTT2_MGB1_bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""

Selbstredend sollte diese zweite Zeile auf ggf. geänderte Pfade angepaßt werden...

3. Dann kannst du dein eigentliches "Zieldevice" (das heißt doch GHoma_625e60, oder?) um die Attribute für die Steuerung via MQTT ergänzen:
attr GHoma_625e60 mqttGB1Publish state:topic={"$base"}
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"}

Die Namen der Attribute sind dabei im ersten Teil abhängig von dem, was du oben gewählt hattest.

4. Testen:
a) In Empfangsrichtung solltest du jetzt einen in FHEM ausgelösten Schaltvorgang übermittelt bekommen, und der Ausgangs-Zähler im Device MGB1 sollten sich erhöhen. Wie du das mit deiner App machst, kann ich nicht sagen, ich habe dazu die mosquitto_sub-Befehle hingepinselt.
Wenn das klappt, kannst du Teil b) testen:
b) In Senderichtung musst du dann einfach nur die Payload "on" an den entsprechenden Topic versenden, wie das bei mir ausschaut, war für mosquitto_pub in dem anderen Thread zu erkennen.

Weniger Code wird es nicht, und ich hoffe, du kannst das jetzt so nachbauen. Aber bitte dabei immer einen Schritt nach dem anderen, wenn die Aktivierung von MQTT_GENERIC_BRIDGE fehlschlägt, kann man auch keine Attribute irgendwo anders setzen...
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 18:16:43
So bin auf meinen mqtt server gegangen und dort rawdefinition
der erste befehl ohne Error
dieser hier
attr MGB1 mqttDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
erzeugt folgenden fehler
MGB1: unknown attribute mqttDefaults. Type 'attr MGB1 ?' for a detailed list.
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 18:30:22
So ich habe im Room Server
den MQTT2 server
ohne attr  nur room
Dann habe ich den
Bridgeregexp mit folgenen einträgen
define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE
setuuid MQTT2_MGB1_bridgeRegexp 5ffc891d-f33f-99d1-0436-d98968dbeeaed563
attr MQTT2_MGB1_bridgeRegexp IODev MQTT2_FHEM_Server
attr MQTT2_MGB1_bridgeRegexp bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""
attr MQTT2_MGB1_bridgeRegexp room Server

vorher habe ich den MGB1
define MGB1 MQTT_GENERIC_BRIDGE mqttGB1
setuuid MGB1 5ffc8735-f33f-99d1-ff33-5c9807781b144b48
attr MGB1 IODev MQTT2_FHEM_Server
attr MGB1 room Server
aber wenn ich über mgb1 attr  mqttGB1deafaults anklicke und dann im grossen fenster den code
sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
einfüge kommt
this attribute is not allowed here
wo muss ich das denn sonst setzen?
hab mal den mqttserver auprobiert und dort unter attr  den mqttgb1defaults und dann den code einkopiert und er hat es genommen
jetzt testen

ich verbinde mich und trage als topic GHoma625_60 on ein oder set GHoma625_e60 on
dann kommt das hier
2021.01.11 18:32:44 2 : autocreate: define MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_FHEM_Server
2021.01.11 18:32:44 2 : autocreate: define FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe FileLog ./log/MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe-%Y.log MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-11 18:32:44 Global global UNDEFINED MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_FHEM_Server
2021-01-11 18:32:44 Global global DEFINED MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-11 18:32:44 Global global DEFINED FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-11 18:32:44 Global global ATTR MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:GHoma625e60\x20on:.* GHoma625e60_on
2021-01-11 18:32:44 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe GHoma625e60_on:
2021-01-11 18:32:56 Global global ATTR MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:GHoma625e60\x20on:.* GHoma625e60_on GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20on:.* set_GHoma625e60_on
2021-01-11 18:32:56 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe set_GHoma625e60_on:
Aber geschaltet wird nix

Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 11 Januar 2021, 18:31:43
Srry, das sollte globalDefaults sein.
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 18:57:26
Also schaltet immer noch nix
So jetzt mal meine config noch mal
#MQTT Server
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
setuuid MQTT2_FHEM_Server 5ff119e2-f33f-ac0a-54ad-6069867b44d42722
attr MQTT2_FHEM_Server room Server
define MGB1 MQTT_GENERIC_BRIDGE mqttGB1
setuuid MGB1 5ffc8735-f33f-99d1-ff33-5c9807781b144b48
attr MGB1 IODev MQTT2_FHEM_Server
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
attr MGB1 room Server

define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE
setuuid MQTT2_MGB1_bridgeRegexp 5ffc891d-f33f-99d1-0436-d98968dbeeaed563
attr MQTT2_MGB1_bridgeRegexp IODev MQTT2_FHEM_Server
attr MQTT2_MGB1_bridgeRegexp bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""
attr MQTT2_MGB1_bridgeRegexp room Server


define GHoma_625e60 GHoma 625e60
setuuid GHoma_625e60 5ff316a6-f33f-99d1-77f7-7b194a3cd534debe
attr GHoma_625e60 alias Heimtrainer
attr GHoma_625e60 mqttGB1Publish state:topic={"$base"}
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_625e60 room Wohnzimmer



Sende ich über meine app  als topic
set GHoma625e60 on
sehe ich im eventlog folgendes und es wird auch in die config ans ende angehangen


2021-01-11 18:54:19 MQTT2_SERVER MQTT2_FHEM_Server nrclients: 1
2021.01.11 18:54:22 2 : autocreate: define MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_FHEM_Server
2021.01.11 18:54:22 2 : autocreate: define FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe FileLog ./log/MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe-%Y.log MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-11 18:54:22 Global global UNDEFINED MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_FHEM_Server
2021-01-11 18:54:22 Global global DEFINED MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-11 18:54:22 Global global DEFINED FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
2021-01-11 18:54:22 Global global ATTR MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20on:.* set_GHoma625e60_on
2021-01-11 18:54:22 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe set_GHoma625e60_on:



lasse ich das set weg kommt im eventlog

11 18:55:32 Global global ATTR MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20on:.* set_GHoma625e60_on GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:GHoma625e60\x20on:.* GHoma625e60_on
2021-01-11 18:55:32 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe GHoma625e60_on:


schreibe ich on groß dann kommt

2021-01-11 18:56:26 MQTT2_DEVICE MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe set_GHoma625e60_ON:
aber es passiert nix

Muss ich auch was unter messages senden oder nur topic?

Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 19:17:13
So noch mal von vorne hab alles rausgemacht von mqtt bis auf den server

Dann deine befehle der reihe nach in die eingabe leiste und eingegeben
Es kam kein fehler und er hat alles in die Config eingetragen

defmod MGB1 MQTT_GENERIC_BRIDGE mqttGB1

attr MGB1 mqttDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0


define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE

attr MQTT2_MGB1_bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""


attr GHoma_625e60 mqttGB1Publish state:topic={"$base"}
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"}


sende ich über mein handy    set GHoma_625e60 an den mqtt2 server ,so erstellt er ein mqttdevice

define MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe MQTT2_DEVICE GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
setuuid MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe 5ffc93b7-f33f-99d1-9302-6806444ec7a65388
attr MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe IODev MQTT2_FHEM_Server
attr MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe readingList GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20on:.* set_GHoma625e60_on
attr MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe room MQTT2_DEVICE
define FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe FileLog ./log/MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe-%Y.log MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe
setuuid FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe 5ffc93b7-f33f-99d1-2be6-c0a5690ce997d3dc
attr FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe logtype text
attr FileLog_MQTT2_GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe room MQTT2_DEVICE


inkl Filelog


Ist das so richtig?
gebe ich in fhem set GHoma_625e60 on dann schaltet er die steckdose ein ,nur über den mqttserver nicht?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 19:21:00
So sieht die READingslist aus vom anglegten MQTTDEVice GHoma

   
GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20on:.* set_GHoma625e60_on
GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:GHoma625e60\x20on:.* GHoma625e60_on
GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20On:.* set_GHoma625e60_On
GHoma_625e60_5ff316a6_f33f_99d1_77f7_7b194a3cd534debe:set\x20GHoma625e60\x20ON:.* set_GHoma625e60_ON


Beim 2 habe ich mal das set weg gelassen
Dann habe ich on mal anderst geschrieben
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 19:26:51
Kann es an dem set_GHoma_625e60_on liegen    ich gebe diese beiden unterstriche nicht ein ich schreibe set GHoma_625e60
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 11 Januar 2021, 19:58:35
Topic: FHEM_main/MQTT2FHEM/GHoma_625e60
Payload: on (bzw. off)
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 11 Januar 2021, 20:16:29
Payload ist Messages?
Ich kann in meinem MQTT Block nur Topic und Messages senden.
Also setze ich ein set davor dann sieht das reading so aus
GHoma_625e60
off
2021-01-11 20:11:06
Bei on halt dann on
Es ändert sich jedes mal das reading aber der state vom mqttdevice ghoma ...... bleibt bei ???

Also das ist schon mal anders .
Aber schalten tut sich nix
Setze ich nur den Befehl den du bei TOPIC angegeben hast ,dann ändert sich das Reading nicht es passiert auch nix
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 11 Januar 2021, 20:42:24
Payload ist vermutlich messages im Sprachgebrauch deiner App, und auf irgendein MQTT2_DEVICE sollte das KEINE Auswirkungen haben, wenn du was sendest. Nur der "incoming count" an der MGB1 sollte sich ändern, die Anweisung wird DIREKT an das Zieldevice "GHoma_625e60" weitergegeben...

Und vermutlich brauchst du kein "set" irgendwo, es sei denn deine App will das haben. FHEM/MGB1 braucht das nicht, es stört höchstens.
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 13:32:52
Magst du mal mitteilen, welche App du da genau nutzt?
Ausnahmsweise könnte ggf. ein screenshot weiterhelfen...

Oder hat es jetzt funktioniert?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 16:59:22
So also der Incomming count ändert sich wenn ich das set vorne weglasse.
Dann wird auch kein mqttdevice angelegt.

Aber geschaltet wird nix
hier noch mal meine config .hab gerade alles noch mal neu gemacht
PS Topic = Topic    Payload =Messages


#MQTT Server
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
setuuid MQTT2_FHEM_Server 5ff119e2-f33f-ac0a-54ad-6069867b44d42722
attr MQTT2_FHEM_Server room MQTT,Server
######MQTTBRidge
define MGB1 MQTT_GENERIC_BRIDGE mqttGB1
setuuid MGB1 5ffdc355-f33f-99d1-a9f7-d9cb4aac5b6156b0
attr MGB1 IODev MQTT2_FHEM_Server
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
attr MGB1 room MQTT
######################
define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE
setuuid MQTT2_MGB1_bridgeRegexp 5ffdc3c9-f33f-99d1-8ca7-a951b872955eb9cb
attr MQTT2_MGB1_bridgeRegexp IODev MQTT2_FHEM_Server
attr MQTT2_MGB1_bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""


##Ghoma Steckdosen
define GHoma_625e60 GHoma 625e60
setuuid GHoma_625e60 5ff316a6-f33f-99d1-77f7-7b194a3cd534debe
attr GHoma_625e60 alias Heimtrainer
attr GHoma_625e60 mqttGB1Publish state:topic={"$base"}
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_625e60 room Wohnzimmer



App ?   
Ich Programmiere mir die selber mit APP-Inventor  obwohl programmieren ist übertrieben im verhältniss was ich sonst programmiere
Delphi,php
Es ist eine art Baukasten system .
Ich benutze die mqtt extension .
Kennst du app-inventor?   
Wie gesagt über den ssh-> perl tunnel geht es .
Aber die Steuerzeiten sind zu lang und manchmal wird ein befehl verschluckt .
Deshalb möchte ich ja mqtt machen

Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 17:10:34
Habe jetzt mal ein paar andere Steckdosen probiert über all das selbe es wird nix geschaktet
ich sende mal die ganze Config. 
Password sachen habe ich auskommentiert mit xxxxxx

attr global userattr DbLogExclude DbLogInclude cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fm_fav fm_groups fm_name fm_order fp_Groundfloor icon mqttGB1Alias:textField-long mqttGB1Defaults:textField-long mqttGB1Disable:both,incoming,outgoing mqttGB1Forward:all,none mqttGB1Publish:textField-long mqttGB1Subscribe:textField-long sortby structexclude webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global autosave 0
attr global featurelevel 5.7
attr global latitude 51.05
attr global logfile ./log/fhem-%Y-%m.log
attr global longitude 7.0167
attr global modpath .
attr global motd SecurityCheck:\
  telnetPort is not password protected\
\
Protect this FHEM installation by configuring the allowed device allowed_WEB\
You can disable this message with attr global motd none
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3





define telnetPort telnet 7072 global
setuuid telnetPort xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



define WEB FHEMWEB 8083 global
setuuid WEB xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr WEB csrfToken none
attr WEB editConfig 1
attr WEB longpoll websocket
attr WEB menuEntries restart,cmd=shutdown+restart,update,cmd=update,updatecheck,cmd=update+check
attr WEB stylesheetPrefix default


define allowed_WEB allowed
setuuid allowed_WEB xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEB basicAuth xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEB validFor WEB
define WEBphone FHEMWEB 8084 global
setuuid WEBphone xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr WEBphone csrfToken none
attr WEBphone hiddenroom AlarmRoom
attr WEBphone stylesheetPrefix smallscreen
define allowed_WEBphone allowed
setuuid allowed_WEBphone xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEBphone basicAuth xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEBphone validFor WEBphone
define WEBtablet FHEMWEB 8085 global
setuuid WEBtablet xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr WEBtablet csrfToken none
attr WEBtablet hiddenroom AlarmRoom
attr WEBtablet stylesheetPrefix touchpad
define allowed_WEBtablet allowed
setuuid allowed_WEBtablet xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEBtablet basicAuth bGdyOnN0YXJ3YXJzMTk3MQ==
attr allowed_WEBtablet validFor WEBtablet
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
setuuid Logfile xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
define autocreate autocreate
setuuid autocreate xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr autocreate autosave 1
attr autocreate filelog ./log/%NAME-%Y.log
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

####################################################
#MQTT Server
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
setuuid MQTT2_FHEM_Server xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr MQTT2_FHEM_Server room MQTT,Server
######MQTTBRidge
define MGB1 MQTT_GENERIC_BRIDGE mqttGB1
setuuid MGB1 5ffdc355-f33f-99d1-a9f7-d9cb4aac5b6156b0
attr MGB1 IODev MQTT2_FHEM_Server
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
attr MGB1 room MQTT
######################
define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE
setuuid MQTT2_MGB1_bridgeRegexp 5ffdc3c9-f33f-99d1-8ca7-a951b872955eb9cb
attr MQTT2_MGB1_bridgeRegexp IODev MQTT2_FHEM_Server
attr MQTT2_MGB1_bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""

########################PushoverMessages########################################
define pushmsg Pushover xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
setuuid pushmsg xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr pushmsg room Zentralen
##Example
##set pushmsg msg 'fhem' 'Alle Lichter AN! - $EVENT' '' 0 ''
##Event kann auch weg
##set pushmsg msg 'Goodbye! ' 'Alle unwichtigen Verbraucher abgeschaltet!' '' 0 ''
define notify_fhem_reload notify global:INITIALIZED set pushmsg msg 'fhem' 'Ich wurde neu geladen!' '' 0 ''
setuuid notify_fhem_reload xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
######################## Sunrise/Sunset ########################################
define Sonnenaufgang dummy
setuuid Sonnenaufgang xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr Sonnenaufgang room Wohnzimmer,Flur,Kueche,Zentralen
define Sonnenuntergang dummy
setuuid Sonnenuntergang xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr Sonnenuntergang room Wohnzimmer,Flur,Kueche,Zentralen
define sun_riseSet_timer at *00:05:00 { my $s = sunrise();; fhem("set Sonnenaufgang $s");; $s = sunset();; fhem("set Sonnenuntergang $s");; }
setuuid sun_riseSet_timer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr sun_riseSet_timer room Wetter
define WEBhook FHEMWEB 8088 global
setuuid WEBhook xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr WEBhook csrfToken none
attr WEBhook hiddenroom 1
attr WEBhook room hidden
attr WEBhook webname webhook
define allowed_WEBhook allowed
setuuid allowed_WEBhook xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEBhook allowedCommands ,
attr allowed_WEBhook basicAuth xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr allowed_WEBhook validFor WEBhook
##Auswertung Geofance
##########################################################################
#G-Homa Server
define GServer GHoma 4196
setuuid GServer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
########################################Herzlampe Wohnzimmer
define GHoma_6284fa GHoma 6284fa
setuuid GHoma_6284fa 5ff316a6-f33f-99d1-61a7-6e9e0b767853c8c0
attr GHoma_6284fa alias Herzlampe
attr GHoma_6284fa mqttGB1Publish state:topic={"$base"}
attr GHoma_6284fa mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_6284fa room Wohnzimmer
###########################################Deko Flur
define GHoma_69a328 GHoma 69a328
setuuid GHoma_69a328 5ff316a6-f33f-99d1-7ad6-07a2e21259b4d091
attr GHoma_69a328 alias Weihnachtsbeleuchtung
attr GHoma_69a328 mqttGB1Publish state:topic={"$base"}
attr GHoma_69a328 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_69a328 room Flur
###########################################Heimtrainer wohnzimer
define GHoma_625e60 GHoma 625e60
setuuid GHoma_625e60 5ff316a6-f33f-99d1-77f7-7b194a3cd534debe
attr GHoma_625e60 alias Heimtrainer
attr GHoma_625e60 mqttGB1Publish state:topic={"$base"}
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_625e60 room Wohnzimmer
##################################################Zusatzbeleuchtung Wohnzimmer
define GHoma_d78d32 GHoma d78d32
setuuid GHoma_d78d32 5ff316a6-f33f-99d1-a5bf-12b9848983c25267
attr GHoma_d78d32 alias Weihnachtsbeleuchtung
attr GHoma_d78d32 mqttGB1Publish state:topic={"$base"}
attr GHoma_d78d32 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_d78d32 room Wohnzimmer
#################################################Sideboard Flur
define GHoma_1bade8 GHoma 1bade8
setuuid GHoma_1bade8 5ff316a6-f33f-99d1-32f1-452af2546e4dc36a
attr GHoma_1bade8 alias Sideboard
attr GHoma_1bade8 mqttGB1Publish state:topic={"$base"}
attr GHoma_1bade8 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_1bade8 room Flur
#################################################WeisseLampe Wohnzimer
define GHoma_c82c70 GHoma c82c70
setuuid GHoma_c82c70 5ff316a6-f33f-99d1-fada-e245e27d7b436365
attr GHoma_c82c70 alias Weisse Lampe
attr GHoma_c82c70 room Wohnzimmer
define GHoma_8be926 GHoma 8be926
setuuid GHoma_8be926 5ff316a6-f33f-99d1-dd94-d1c3a8b5f95acd57
attr GHoma_8be926 alias CR10 Evo1
attr GHoma_8be926 mqttGB1Publish state:topic={"$base"}
attr GHoma_8be926 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_8be926 room 3D Drucker
###########################################Notebook Wohnzimmer
define GHoma_84fc20 GHoma 84fc20
setuuid GHoma_84fc20 5ff316a6-f33f-99d1-7aae-b5e6dc993e4dc3fb
attr GHoma_84fc20 alias Indirekte Beleuchtung
attr GHoma_84fc20 room Kueche
define GHoma_1bbdac GHoma 1bbdac
setuuid GHoma_1bbdac 5ff316a6-f33f-99d1-0545-8c49508d2ceeb58b
attr GHoma_1bbdac alias Notebooksteckdose
attr GHoma_1bbdac mqttGB1Publish state:topic={"$base"}
attr GHoma_1bbdac mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_1bbdac room Wohnzimmer
###########################################Deko Wohnzimmer
define GHoma_1bb84c GHoma 1bb84c
setuuid GHoma_1bb84c 5ff316a7-f33f-99d1-ac38-a4269c198c403d11
attr GHoma_1bb84c alias Schrank Dekoration
attr GHoma_1bb84c mqttGB1Publish state:topic={"$base"}
attr GHoma_1bb84c mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_1bb84c room Wohnzimmer
############################################Hypercube
define GHoma_8be712 GHoma 8be712
setuuid GHoma_8be712 5ff316a7-f33f-99d1-48ba-3c21bef0551e8cc6
attr GHoma_8be712 alias Hypercube Evo2
attr GHoma_8be712 mqttGB1Publish state:topic={"$base"}
attr GHoma_8be712 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_8be712 room 3D Drucker
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 17:20:36
Wenn sich der incoming count ändert, ist das schon mal besser, dann müßte eigentlich auch was an dem Heimtrainer passieren...

Kannst du bitte zukünftig die RAW-Def posten (aus FHEMWEB z.B. mit "list -RGHoma_625e60") und nicht irgendwelche Direkt-Schnipsel aus einer beliebten Textdatei...? (und mehr bringt uns nicht weiter, schon gleich nicht, wenn die Zustände fehlen... Nicht umsonst wird üblicherweise ein "list" gefordert!).

Grundsätzlich finde ich es immer schwierig, an allen Enden zu drehen (=unbekannte App, unbekannte Syntax, unbekannte Methode in FHEM).
Ergo: kannst du irgendwo mal einen Linux-Rechner auftreiben, auf dem mosquitto_clients installiert ist (mosquitto_sub und mosquitto_pub)? Dann können wir erst mal damit testen und wissen, dass wir über dasselbe reden... (das ginge auch auf dem System, auf dem FHEM läuft, aber bitte NICHT das mosquitto-Paket installieren, nur die Clients, oder ein 2. FHEM, falls du ein Testsystem hast).

Wenn du dann sicher bist, dass du von einem (entfernten) Rechner aus demselben Netzwerk die Dose via MQTT geschaltet bekommst, kannst du mit der App weitermachen, aber so ist es schwierig, weil auch das Java (paho-) Gelumpe ein gewisses Eigenleben hat, das in deinem App-framework verwendet wird...

(Was App-Entwicklung angeht, bin ich noob)
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 17:23:36
Hi
sorry das kannte ich nicht ,bin in Fhem nicht so der King grins


define GHoma_625e60 GHoma 625e60
attr GHoma_625e60 alias Heimtrainer
attr GHoma_625e60 mqttGB1Publish state:topic={"$base"}
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_625e60 room Wohnzimmer

setstate GHoma_625e60 off
setstate GHoma_625e60 2021-01-12 17:20:35 source local
setstate GHoma_625e60 2021-01-12 17:20:35 state off





define GHoma_1bb84c GHoma 1bb84c
attr GHoma_1bb84c alias Schrank Dekoration
attr GHoma_1bb84c mqttGB1Publish state:topic={"$base"}
attr GHoma_1bb84c mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_1bb84c room Wohnzimmer

setstate GHoma_1bb84c on
setstate GHoma_1bb84c 2021-01-12 16:49:25 source local
setstate GHoma_1bb84c 2021-01-12 16:49:25 state on


Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 17:31:03
Hier MGB1

define MGB1 MQTT_GENERIC_BRIDGE mqttGB1
attr MGB1 IODev MQTT2_FHEM_Server
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
attr MGB1 room MQTT

setstate MGB1 2021-01-12 17:11:17 device-count 0
setstate MGB1 2021-01-12 17:27:43 incoming-count 85
setstate MGB1 2021-01-12 16:49:21 outgoing-count 0
setstate MGB1 2021-01-12 16:49:21 updated-reading-count 0
setstate MGB1 2021-01-12 16:49:21 updated-set-count 0


define MQTT2_MGB1_bridgeRegexp MQTT2_DEVICE
attr MQTT2_MGB1_bridgeRegexp IODev MQTT2_FHEM_Server
attr MQTT2_MGB1_bridgeRegexp bridgeRegexp FHEM_main/MQTT2FHEM/.*:.* ""


Bei beiden steht bei State 3 Fragezeichen . 
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 17:47:11
Code tags?

device count an der MGB1 sollte "1" sein, das ist seltsam. Kannst du die mqtt-Attribute an der GHoma_625e60 nochmal anfassen?

Die drei Fragezeichen sind normal, es gibt kein Internal STATE (was an sich kein Problem darstellt, ist halt (noch) nicht gefüllt).
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 18:41:48
Was meinst du mit anfassen?
Alle attr in den steckdosen noch mal löschen und neu setzen?
So habe beide attr in jeder steckdose gelöscht und setze sie jetzt neu?
Ich gehe dazu in das jeweilige device und mache das neu bei attr ?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 18:51:00
Z.B.. Oder Raw Definition ausführen. Hauptsache via fhemweb
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 18:58:22
Ok also jetzt scheint sich was zu tun
MGB1 device code 1 und wenn ich was schalte geht es
ich trage jetzt jedes device ein und teste das device bevor ich das nächste mache
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 19:27:17
äääääääh   ich konnte eine steckdose schalten und jetzt geht wieder nix mehr er zeigt mir 2 devices und  der count geht auch hoch .
Interessant ist das der state vom GHoma625... geändert wird . in Fhem also lampe an oder aus  aber die steckdoese bleibt an?


Save config
3D Drucker
Flur
Kueche
MQTT
Server
Unsorted
Wetter
Wohnzimmer
Zentralen
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor
restart
update
updatecheck
define MGB1 MQTT_GENERIC_BRIDGE mqttGB1
attr MGB1 IODev MQTT2_FHEM_Server
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=0
attr MGB1 room MQTT

setstate MGB1 2021-01-12 19:21:19 device-count 2
setstate MGB1 2021-01-12 19:26:04 incoming-count 16
setstate MGB1 2021-01-12 19:26:04 outgoing-count 10
setstate MGB1 2021-01-12 19:26:04 transmission-state outgoing publish sent
setstate MGB1 2021-01-12 19:26:04 updated-reading-count 6
setstate MGB1 2021-01-12 19:21:19 updated-set-count 0
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 19:51:04
topic oder stopic?
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 19:56:29
Also so langsam kotze ich
ich hab alle devices gelöscht und sie wurden von autocreate neu angelegt
dann bin ich in ein device gegangen und habe dort raw inport gemacht
attr GHoma_8be712 mqttGB1Publish state:stopic={"$base"}
attr GHoma_8be712 mqttGB1Subscribe state:stopic={"$base"}

mein Raw sieht so aus
defmod GHoma_8be712 GHoma 8be712
attr GHoma_8be712 mqttGB1Publish state:stopic={"$base"}
attr GHoma_8be712 mqttGB1Subscribe state:stopic={"$base"}
attr GHoma_8be712 room GHoma

setstate GHoma_8be712 on
setstate GHoma_8be712 2021-01-12 19:40:32 source remote
setstate GHoma_8be712 2021-01-12 19:40:32 state on




Also ich lösche diese attr noch mal und starte den rpi neu

Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 20:01:01
ups hat sich da ein s eingeschlichen ich teste gleich nochmal
habe gerade die attr eingetragen in ein device was er ebend schalten konnte
muss nur warten die steckdosen verbinden sich neu zum server da ich den pi rebootet hab
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 20:04:37
1. Nutze Code tags!
2. Es ist unterschiedlich mit dem "s" in Sende- und Empfangsrichtung. Das "s" für "set" (!) gilt nur für Subscribe.

3. Merke: Direktes Editieren in der cfg ist Mist, und dauernd alles neu zu machen auch.
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 20:15:23
So also vielen vielen dank für deine Geduld
Ich hab das s nicht gesehen
Aber ich hatte auch einen fehler in meiner app
und zwar war hinter dem GHoma625e60 eine leerstelle jetzt kann ich beide steckdosen sofort schalten
Also vielen lieben Dank
Und wenn ich dir mit der APP helfen kann gerne,
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 20:25:35
...immer wieder gerne, viel Erfolg noch mein Weiterentwickeln deiner App!
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 21:06:06
So hab die Steuerung in meiner app auf das mqtt umgestellt
nun muss ich noch die state auslesen über mqtt und diese dann in meiner app auswerten
kennst du appinventor
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 12 Januar 2021, 21:17:18
Kenne appinventor nicht, bin wie bereits geschrieben völliger noob was das Thema angeht.

Bei "muss nur auslesen" streuben sich mir allerdings die Nackenhaare: MGB macht in der hier gezeigten Einstellung für jeden "registrierten" Event ein automatisches Publish. Du musst also nichts abholen, sondern ggf. einfach mit "retain" versenden, wenn du auch "alte Werte" später beim Verbinden haben willst.
Grundsätzlich habe ich den Eindruck, dass du dich gründlicher in manche Themen einlesen und eindenken müßtest! So oberflächlich kann das nur im Frust enden...

(Nur meine 2ct.)
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 12 Januar 2021, 21:27:23
In der Regel lese ich viel ,hab ich auch bei mqtt gemacht aber bin damit nicht klar gekommen.
Ich programmiere mehr in richtung php,delphi und da lese ich schon ne menge.
Hab schon einiges umgesetzt
Automatisiertes Backupsystem von gameserver,rpi auf einen Backupserver.  jeden Samstag inkl Datenbank eiträgen usw.
PS ich bin grad am lesen zu mqtt readings lesen
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 13 Januar 2021, 16:12:45
Ich habe gestern gelesen und was probiert.
Aber mal für mich zum verstehen
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"} sorgt doch eigentlich dafür
das die antwort mit zurück gesendet wird ?
Nur auslesen kann ich nix .
Das Retain Flag verstehe ich nicht warum ist es wichtig das der topic gespeichert wird
der attr .... publish sagt doch was gemacht werden soll und attr subcribe gibt doch dann die antwort auf publish oder?
verstehe ich das falsch
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 13 Januar 2021, 16:38:37
Zitat von: kleinz am 13 Januar 2021, 16:12:45
attr GHoma_625e60 mqttGB1Subscribe state:stopic={"$base"} sorgt doch eigentlich dafür
das die antwort mit zurück gesendet wird ?
Nope. Es (subscribe+stopic) sorgt dafür, dass FHEM das, was auf den betreffenden Topic als payload kommt als "set $device $name $message" versteht.

Zitat
Nur auslesen kann ich nix .
"Auslesen" ist eine Wortwahl, die nicht zu MQTT paßt. (Punkt!)

Zitat
Das Retain Flag verstehe ich nicht warum ist es wichtig das der topic gespeichert wird
Das "retain" ist eher "auslesen": Der Server hält halt den letzten übermittelten Stand vor und löscht ihn nicht direkt, nachdem er allen angemeldeten Clients übermittelt hat, dass da was war... so kann man auch später noch mitbekommen, was der aktuelle/letzte übermittelte Stand ist.

Kann man machen, wie man lustig ist bzw. wie es zum eigenen Anwendungfall am besten paßt. Datenschutzmäßig ist es besser, _kein_ "retain"-flag zu setzen.

Zitat
der attr .... publish sagt doch was gemacht werden soll und attr subcribe gibt doch dann die antwort auf publish oder?
verstehe ich das falsch
Falsch rum: publish ist (von FHEM aus) die Senderichtung. Und ob die Antwort auf eine aus subscription kommende Anweisung direkt versendet werden soll ("hab's bekommen") oder nicht, kann man durch ein spezielles Attribut am Gerät einstellen. In der Regel wird der geänderte Stand zurückgemeldet, allerdings hängt das auch davon ab, wie die das Zelmodul "tickt" und die Konfiguration als solche gestrickt ist. Bin an der Stelle auch noch nicht abschließend durch, aber z.B. ein ZWave-Thermostat scheint da anders zu reagieren wie ein CUL_HM...
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 13 Januar 2021, 16:52:00
Dann würde ich ja fast sagen das mqtt retain für mich nix taugt.
Client 1 hat das Licht küche eingeschaltet und bekommt es mit retain mitgeteilt.
Jetzt verbindet sich client 2 .
Wie soll er wissen wie die state aller anderen Devices ist.?
Sogar das letzte von client 1 geschaltete Küchenlicht retain wurde ja über mittelt an client 1 und gelöscht.
Dann bleibe ich beim ssh read state .
Wenn ich meine App starte initialisiert sie sich und fragt alle state ab.
Dementsprechend werden die Button Rot oder Grün angezeigt.
Ein klick schaltet ein device ein ein langer klick schatet aus.
so bekomme ich alle paar Sekunden den state aller devices!
Es geht jetzt über einen ssh tunnel und dann per perl Befehl an den Fhem Server .Der Abfragetimer hat 1000ms   
So dauert die antwort auch schon mal 3000ms. Aber das ist akzetabel.
In 70 % der Fälle werden die Devices per script vom RPI gesteuert.
In ca 25% der Fälle ist man zuhause wenn man schaltet
Die 5 % wo man übers Internet schaltet da kann ich mit der Verzögerung leben.
Aber ich wäre nicht ich wenn ich da noch nach anderen wegen suche
Thank you verry verry verry much
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 13 Januar 2021, 17:07:47
Deine "Richtungsdenke" ist m.E. verquer. Nicht die Anweisung musst du ggf. auf dem MQTT-Server vorhalten, sondern das Ergebnis, also aus FHEM-Sicht das publish (egal, ob es eine Reaktion auf eine MQTT-Anweisung war, oder z.B. durch einen in FHEM verarbeiteten Tastendruck (notify uä.)).

Und "retain" bedeutet afaik eben "nach zustellung nicht löschen", was genau das ist, was du bei späterer Verbindung haben willst.

Aber mach' du nur, wie du denkst, schließlich musst du es verstehen, und nicht ich ;) . Ich will aber nicht ausschließen, dass ich da in die MGB-Konfiguration noch einen "Fehler" eingebaut hatte...

Wenn ich es richtig deute, müsste es dann so sein:
attr MGB1 globalDefaults sub:base={"FHEM_main/MQTT2FHEM/$device"} pub:base={"FHEM_main/FHEM2MQTT/$device"} pub:qos=0 sub:qos=2 retain=1
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 13 Januar 2021, 19:51:59
Ich hab retain 0 in der attr
hm ok werde das noch mal testen.
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 13 Januar 2021, 20:23:09
habe jetzt vom windows mqtt client mal getestet und ja jetzt mit 1 werden mir die state angezeigt .
Das letzte und wenn ich weiter runter gehe dann wurden die letzten nach dem umschalten auf 1 angezeigt.
Hm aber ich muss  noch lesen wie bekomme ich den webzugriff hin also aus dem internet. Da lehnt fhem die verbindung ab
Auf der Fritzbox habe ich den port geöffnet
Aber nicht mehr heute
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 14 Januar 2021, 07:59:41
Der MQTT2_SERVER lehnt die Verbindung aus gutem Grund ab:
Simples Portforwarding ist MIST, v.a., wenn man nicht GENAU weiß, was man tut!

Kannst du hier im Forum mehrfach finden, in der Regel aber unter dem Stichwort "Web-Zugriff" (auf FHEMWEB). Das "Problem" ist aber dasselbe: Du gibst den Haustürschlüssel jedem beliebigen "Nachbarn" in die Hand, der "zufällig" deinen Port findet.

Lösung (hier wie dort): vpn-Zugang einrichten!

Alternative: "allowed" und starke SSL-Sicherung (aber beschäftige dich damit bei Bedarf erst, wenn du gelernt hast, die FHEM-Doku genauer zu lesen!!!).
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 14 Januar 2021, 18:14:06
Hi
Ich habe bewusst keine PAsswörter usw gesetzt.
Wenn alles wie es soll funktioniert ,dann sichere ich ab .
Dazu gehört auch ein MAc filter usw
Aber bis alles funktioniert ist mir egal ob mein nachbar der keine Ahnung von rpi oder ähnlichem hat eine LAmpe bei mir an oder ausschaltet.
Und meine Türen schließe ich mit einem Dekoder aus Messing auf und zu.
Ich werde mal schauen nach allow ob ich dem mqtt server weballow setzen kann
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 14 Januar 2021, 18:21:09
...ich wollte es nur anschaulich machen, was du mit der Info machst, ist deine Sache.

Wie gesagt, ich halte den vpn-Weg (auch für Tests, btw.) für einfacher und werde nichts supporten, was aus meiner Sicht eine unsichere Lösung darstellt. Das war im übrigen auch der Startpunkt bzgl. des "notify"...:
Zitat von: Beta-User am 10 Januar 2021, 19:38:32
Ich kann dir helfen, das ganze mit MQTT_GENERIC_BRIDGE ohne notify etc. aufzugleisen, aber diesen anderen Unsinn (meine deutliche Meinung) supporte ich nicht. Daher hatte ich auch auf einen bestimmten Beitrag verwiesen und nicht auf den ersten Beitrag in diesem Thread...
Und offene Ports ohne nähere Kenntnisse von Absicherungsmechanismen und der QoS und Retain-Mechanismen beim Versenden von Nachrichten sind zwar für deine Nachbarn ein Hindernis, nicht aber für geübte Augen und automatisierte Scanner...
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 14 Januar 2021, 20:29:12
So ich habe WEB allow den MQTT2Server aktiviert
In der App habe ich den Benutzernamen und das Passwort eingegeben (festverankert)
Nun kann ich von über alle meine LAmpen schalten.
ICh werde mich wenn mein HM MOD RPI richtig funktioniert mit dem Subscribe besser beschäftigen
Aber im grossen und ganzen habe ich nun eine Verzögerung von1 Sekunde.
Ich habe das überblendet indem die APp ein Lampensysmbol zeigt, für 1 Sekunde .
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: Beta-User am 15 Januar 2021, 08:41:39
SSL hast du auch aktiviert?
Ohne das ist es weiter unsicher...

[OT]
Habe gesehen, dass du den CUL_HM-Thread "geschlossen" hast. Das ist hier nicht üblich, hier im Forum sollte man einfach ein [gelöst] vorne an den Titel hängen, siehe angepinnten Beitrag im Anfängerbereich.
[/OT]
Titel: Antw:Fhem von Android steuern mi MQTT
Beitrag von: kleinz am 15 Januar 2021, 14:17:50
Ups sorry das mit dem schließen .
Ich dachte das macht man so.
werde versuchen es zu öffnen