NEWS
Fragen eines absoluten Newbees
-
@fnbalu Die 2. Instanz brauchst Du auch nicht. Ich hatte das mal weil ich die Inhalte vom Fritzbox Adapter unter mqtt veröffentlichen wollte.
Hier mal ein kleines Video (habe ich aus anderen Gründen erst kürzlich gemacht) - wie einfach es dann ist einen Shelly direkt über iobroker zu schalten:
Damit Du mal siehst wie man einfach einen ganzen Adapter in mqtt veröffentlich - so kann man alle Einträge des tr064-Adapters nach mqtt publishen. Eigentlich brauche ich das nicht mehr. Ich hatte mal die Idee, alles über mqtt zu machen - aber ich habe mich dann entschieden nur dann die Geräte im mqtt zu halten, die nativ mqtt sprechen.
Du siehst der mqtt.2 hat keine eigenen Datenpunkte - aber publiziert alle Geräte des FB Adapters unter iobroker im mqtt.
Deshalb tauchen die Geräte unter mqtt1 - wieder auf
Also für Dich erst mal unwichtig - nur mal zur Illustration.
-
@fnbalu sagte in Fragen eines absoluten Newbees:
@mickym also ich fasse zusammen
Mosquitto ist besser als der bei iobroker interne MQTT
JA weil der MQTT als Broker konfiguriert, Probleme mit ACK=false Nachrichten hat.
Man greift dann auf Mosquito zu. Anleitungen habe ich im Netz schon gefunden.
Installieren ist einfach einfach:
sudo apt install mosquitto
dann halt noch die mosquitto.conf bearbeiten und auch ein Passwort File erstellen, falls Du willst (würde ich aber schon empfehlen). Die mosquitto clients brauchst Du nicht!!!!
Wie ich das verstehe, braucht man Mosquito wenn es einmal konfiguriert ist, keine Beachtung mehr schenken, da die Geräte ihre daten dort hinschicken und der ioBroker holt sie 1:1 nur stumpf ab
Der iobroker als Client holt sich nicht nur die Daten ab, sondern publisht auch über den mosquitto an die Geräte. Deshalb ja - mosquitto läuft transparent im Hintergrund. Wie Du in dem Video gesehen hast, holt sich der MQTT Adapter als Client nicht nur die Daten über mosquitto ab, sondern steuert die Geräte auch über mosquitto.
Nur das mit der zweiten Instanz leuchtet mir absolut nicht ein gerade
Brauchst Du wie gesagt nicht.
-
Hier noch ein paar Hilfestellungen von meiner Konfig:
die mosquitto.conf - kann eigentlich standardmässig bleiben:
/etc/mosquitto $ cat mosquitto.conf # Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d
wenn Du dann nach /etc/mosquitto/conf.d wechselst - dann erstellst Du Dir einfach irgendeine Datei dort. Wie Du ja siehst werden Konfigurationsdateien in dem Verzeichnis berücksichtigt.
/etc/mosquitto/conf.d $ cat xxxxx.conf allow_anonymous false password_file /etc/mosquitto/pwfile listener 1883
Dort wird also nur festgelegt, dass man sich anmelden muss, wo das Passwort File mit den user - passwort Kombinationen liegt und das der Standardport 1883 von mosquitto benutzt wird.
Für die Passworterstellung hilft Steve weiter: http://www.steves-internet-guide.com/mqtt-username-password-example/
Im Prinzip einfach eine Textdatei mit
username:password
Kombinationen erstellen (würde gleich mehrere erstellen) und dann mit
mosquitto_passwd -c textdatei newuser
eine verschlüsselte Datei erstellen und da in dem Verzeichnis erstellen mit dem Namen, der in Deiner Konfig eingetragen ist.
ZUm Schluss prüfen, ob Dein mosquitto läuft:
systemctl status mosquitto ● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset Active: active (running) since Sat 2021-04-10 02:59:22 CEST; 20h ago Docs: man:mosquitto.conf(5) man:mosquitto(8) Main PID: 652 (mosquitto) Tasks: 1 (limit: 4915) CGroup: /system.slice/mosquitto.service └─652 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
-
@mickym vielen Dank erstmal für Deine Mühe und eigentlich ausführlichen Ausführungen.
Nur irgendwie überfordert mich der Scheiß und ich verliere langsam die Lust an dem Ganzen.
Ich habe mir das alles viel leichter vorgestellt. ;-(Da ich Debian nutze, habe ich mit apt-get install installiert.
Ich nutze Midnight Commander zur Verienfachung.mosquitto.conf ist klar
Dann habe ich config.conf erstellt und bis auf Zeile 1 alles hineinkopiert
Zeile 1 ist unschlüssig für mich.Muss die da rein? xxxx.conf? oder dann mein Passwort file?
Warum mehrere Benutzer bei MQTT?
Fragen über Fragen.
Wie gesagt ich möchte halt nicht zig Kilometer in eine Richtung laufen um dann zu erkennen ich hätte anders herum laufen sollen.
Das Problem ist auch, dass es so neu ist, das man nicht mal weiß nach was man googlen müsste um die passenden Antworten zu finden -
@fnbalu Nein alles gut - die 1. Zeile ist nur der Befehl - ignorieren.
Musst nicht mehrere Benutzer machen. Kannst Du halt musst aber nicht.
Wenn Dein mosquitto läuft ist doch alles gut.
-
@mickym das weiß ich noch nicht.
Ich habe die config.conf erstellt.
Nun muss ich den offener hoch und die Passwort Datei erstellen, ja?
Macht es Sinn mit mehreren Nutzern? Hast Du das?
Ob das verschlüsselt sein muss, ist auch fraglich -
@fnbalu NIchts verschlüsseln - die Passwort Datei wird automatisch mit dem Befehl verschlüsselt. Mehrere Nutzer kann man halt nutzen z-bsp für verschiedene Gerätetypen - das kannst aber später auch noch machen
-
@mickym ist das Standard mir der Verschlüsselung oder erforderlich?
Sonst muss das eine ja kein Hochsicherheitstrakt sein, wenn die Shellys nicht auch passend geschützt sind
-
@fnbalu Nein - ich habe kein mqtt verschlüsselt - das brauchst Du im internen Netz auch nicht.
Wahrscheinlich hast Du was falsch verstanden mit dem Befehlmosquitto_passwd -c textdatei newuser
wird nur die Passwortdatei verschlüsselt. wo die user:passwort paare drinstehen und das musst Du schon machen. Die Passwörter sollen ja nicht im KLartext im System stehen.
-
@mickym sodele. Mosquitto ist erstellt und läuft.
Im ioBroker habe ich MQTT installiert und das Shelly Plugin deaktiviert um nicht in die Quere zu kommen.Wie ich das sehe muss ich als MQTT Client/subscriber laufen lassen.
Die Verbindung steht im Test.Ich habe auch einen Shelly MQTT technisch auf den umgestellt.
Er wird somit nach der Suche auch erkannt, jedoch eigentlich fast keine Datenpunkte -
@fnbalu
zum schalten das command oder direkt in relay 0 - die verbrauchsdaten und temp. siehst und firmwareupdates kann st dann später im Node-Red über http machen oder über Web Interface. -
-
@fnbalu Das passt schon - der shelly 1 hat ja keine temperatur und kein energie - wenn Du den schaltetst kommt eventuell noch mehr.
-
@fnbalu Wenn Du den shelly neu startest über webinterface kommt ggf. noch das announce - mach dir keine Sorgen.
Wenn 1 Punkt kommt - dann klappt die Kommunikation schon.
-
@mickym ich habe ihn mal neugestartet, danach zeigte er das Relais.
Aber der Shelly Adapter zieht schon gewaltig mehr Infos, das muss ich schon sagen.
Natürlich braucht man die später fast nie, aber der erste Eindruck ist halt so. -
@fnbalu Also Du hast auch alles was DU brauchst - glaub es mir - der Shelly Adapter hat halt meist immer alle Datenpunkte parat.
In Deinem announce Datenpnkt - wie gesagt kann sein, dass der erst nach Neustart auftaucht steht zum Beispiel:
{"id":"shelly1-FFFFFFF","model":"SHSW-1","mac":"FFFFFFFFFFFF","ip":"192.168.178.xx,"new_fw":false,"fw_ver":"20210115-102904/v1.9.4@e2732e05"}
das brauchst nicht bzw. kannst Du Dir aus dem JSON alles rausholen. Im Adapter ist halt alles ein Datenpunkt. Das kannst Du auch machen, wenn DU willst. Aber mach Dir erst mal keine Gedanken - mir hat noch nie was gefehlt.
-
@mickym {"id":"shelly1-8CAAB55D6B3E","model":"SHSW-1","mac":"8CAAB55D6B3E","ip":"192.168.40.252","new_fw":false,"fw_ver":"20210323-104500/v1.10.1-gf276b51"}
Da habe ich es auch.
Aktuell zeigt er mir das Relais an, aber schalten geht nicht. Der Status ändert sich jedoch, wenn ich manuell schalte.
Und das lässt sich auch weiter gedacht mit einem RGBW2 und Alexa umsetzen?
Mit Farben usw?? -
Bei mir ist das mit dem Input - aber das liegt daran, weil ich den Shelly 1 nur als logisches Gerät nutze sorry (war gerade schlechtes Beispiel) - habe das unten mit dem command ergänzt!!!
Ich empfehle Dir die Orginal - Shelly Seite - da steht für jedes Gerät drin, was man über mqtt und http verschickt:
https://shelly-api-docs.shelly.cloud/#shelly-family-overview
Z. Bsp Shelly1: https://shelly-api-docs.shelly.cloud/#shelly1-1pm-mqtt
Also : shellies/<model>-<deviceid>/relay/0/command accepts on, off or toggle and applies accordingly
Shelly RGBW
https://shelly-api-docs.shelly.cloud/#shelly-rgbw2-color-mqtt
Bei Shelly 1 - kommt wenn Du da keinen Taster sonder Schalter hast wahrscheinlich noch der Longpush event dazu etc.
Wenn man wirklich ein Datenpunkt fehlt - kannst Du den einfach als Datenpunkt im iobroker eintragen. Der wird publiziert und wenn der Shelly den versteht funktioniert der auch.
Ich habe bei meinem shelly 1 gerade gesehen, dass der command gefehlt hat. Hab ihn angelegt unter relay 0
einfach als Zeichenkette.
Bei Befehlen muss man die Datenpunkte oft selbst anlegen, da die ja nicht vom Gerät gepublisht werden. Das ist OK ein kleiner Einmalaufwand.
Und ja das lässt sich auch mit Alexa (OK da hab ich keine Erfahrung) - aber wenn die Node Funktioniert dann geht das und auch mit Farben easy umsetzen.
Ich habe hier auch schon mal einen Beispielflow mit dem Node Red Dashboard gemacht - in dem er einfach die benötigten Daten direkt eingibst:
shellies/shellyrgbw2-<deviceid>/color/0/set accepts a JSON payload described below:
{ "mode": "color", /* "color" */ "red": 0, /* red brightness, 0..255 */ "green": 0, /* green brightness, 0..255 */ "blue": 255, /* blue brightness, 0..255 */ "gain": 100, /* gain for all channels, 0..100 */ "white": 0, /* white brightness, 0..255 */ "effect": 0, /* applies an effect when set */ "turn": "on" /* "on", "off" or "toggle" */ }
Hier schreibst einfach diesen Strign in den entsprechenden /color/0/set Punkt - das wird easy - glaub es mir.
Ich hab zum Besipiel nur den Dimmer - aber hier schreibe ich einfach die Helligkeit in den set Datenpunkt:
-
@fnbalu sagte in Fragen eines absoluten Newbees:
@mickym {"id":"shelly1-8CAAB55D6B3E","model":"SHSW-1","mac":"8CAAB55D6B3E","ip":"192.168.40.252","new_fw":false,"fw_ver":"20210323-104500/v1.10.1-gf276b51"}
Da habe ich es auch.
Aktuell zeigt er mir das Relais an, aber schalten geht nicht. Der Status ändert sich jedoch, wenn ich manuell schalte.
Und das lässt sich auch weiter gedacht mit einem RGBW2 und Alexa umsetzen?
Mit Farben usw??Ich finde jedenfalls, dass DU schon mal super erfolgreich warst. Das hat doch alles gut hingehauen.
-
@mickym findest Du?
Für mich ist das eine reine Reitzüberflütung.Wo ich den fehlenden Datensatz anlege, habe ich gefunden, jedoch wie ich dem mitteile was der kann, überfordert ich aktuell
Ist das mit dem ACK was Du erwähntest echt so dramatisch, dass sich dieser für mich aktuell immense Mehraufwand lohnt??