Hallo Forengemeinde,
ich habe versucht die Statusanzeige nach der Anleitung von ,,blog.moneybag.de" in mein Fhem zu integrieren. Da ich kein Mosquito sondern MQTT2 nutze, habe ich die myUtils angepasst.
Die Led's bzw. der ESP empfängt keine Nachrichten und ich habe folgende Fehlermeldung im Log:
sh: 1: MQTT2Server: not found
Was die Fehlermeldung grundsätzlich bedeutet ist mir schon klar, aber warum funktionieren die anderen Geräte und das Stat.Display wird auch als Client angezeigt? Der Server ist ja vorhanden.
Müsste das Gerät nicht von autocreate angelegt werden?
Anleitung:(ich glaube die ist hier uninteressant)
https://blog.moneybag.de/fhem-mit-led-statusanzeige-led-stripe-wd2812b-esp-8266/ (https://blog.moneybag.de/fhem-mit-led-statusanzeige-led-stripe-wd2812b-esp-8266/)
List vom MQTT2Server (192.168.178.62 ist der Client)
Internals:
CONNECTS 16
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 1883 global
FD 18
FUUID 6212b331-f33f-6f45-002c-2e6e0ce303999682
NAME MQTT2Server
NR 523
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
eventCount 28
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2023-03-23 12:07:50 lastPublish cmnd/FastLedDisplay/rbw:4,255,255,255
2023-03-23 16:22:37 nrclients 6
2023-03-23 16:23:36 state Initialized
clients:
MQTT2Server_192.168.178.24_55336 1
MQTT2Server_192.168.178.29_5886 1
MQTT2Server_192.168.178.34_20854 1
MQTT2Server_192.168.178.36_50924 1
MQTT2Server_192.168.178.62_57449 1
MQTT2Server_192.168.178.67_51850 1
hmccu:
Attributes:
autocreate simple
room Server
List vom MQTT2-Device (von Hand angelegt)
Internals:
CID MQTT2Server_192.168.178.62_57449
DEF MQTT2Server_192.168.178.62_57449
FUUID 641b2f7c-f33f-6f45-a000-92e7d019ccba2e69
IODev MQTT2Server
NAME FastLedDisplay
NR 626
STATE ???
TYPE MQTT2_DEVICE
READINGS:
2023-03-23 16:47:10 IODev MQTT2Server
2023-03-23 12:05:06 subscriptions cmnd/FastLedDisplay/rbw
Attributes:
autocreate 1
room MQTT2_DEVICE
99_myUtils.pm
sub myLEDSend($$) {
my ($dev,$led) = @_;
my $cmd = "MQTT2Server /FastLedDisplay/rbw '$led'";
system( "$cmd;$cmd;$cmd" );
return undef;
}
Hat jemand eine Idee was hier schiefläuft?
Vielen Dank und Gruß
Dirk
Wenn du aus FHEM heraus was publishen willst (ich habe nicht nach der verlinkten Anleitung gesucht), dann geht das schlicht über den publish-setter am MQTT2_SERVER. Aus myUtils-Code heraus (unter Berücksichtigung der subscriptions-Info...):
fhem("set MQTT2Server publish cmnd/FastLedDisplay/rbw $led");
PS: "return undef;" braucht man nur, wenn die aufrufende Funktion ein Array füllen will. Willst du vermutlich nicht...
Vielen Dank für deine Antwort Beta-User.
Ich habe alle mir einfallenden Möglichkeiten ausprobiert. Ich glaube das Problem liegt bei der Kommunikation zwischen ESP und Broker.
Werde nochmal ganz von vorn anfangen und zusätzlich einen Raspberry mit Mosquitto nach Anleitung aufsetzen. Mal schauen was wie funktioniert.
Gruß
Dirk
Na dann viel Erfolg.
Ich _glaube_ allerdings nicht, dass ein anderer MQTT-Server das Problem löst - der erhöht nur die Komplexität deines Gesamtsystems... Würde eher auf "wackelige Kommunikation" zum ESP tippen (das hatten wir schon öfter).
Hallo Beta-User,
du hattest recht! Ein anderer MQTT-Server hat das Problem nicht gelöst.
Von den 8 verbauten Led´s waren 5 defekt.(2-6, was eigentlich nicht funktioniert) Von den 30 Stck. die ich gekauft habe scheint ein Großteil nicht richtig zu funktionieren. Ich habe sie alle Entsorgt und neue bestellt.
Vielen Dank und Gruß
Dirk