Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Vraag


  • wou5er
  • Registratie: Maart 2009
  • Niet online
Mijn vraag
Ik heb nooit echt interesse gehad om MQTT te gebruiken, maar ik wil graag mijn computer draadloos aan en uit kunnen zetten.
Dit is mogelijk maar de WEMOS D1 Mini communiceerd via MQTT waar ik niet bekent mee ben.
Hoe kan ik dit appraat toevoegen aan de broker en ervoor zorgen dat deze zichtbaar word in Domoticz?


Relevante software en hardware die ik gebruik
Ik heb deze software gebruikt voor het project.

Wat ik al gevonden of geprobeerd heb
Ik heb al een broker draaien de PI waar domoticz op draait. Deze functioneert en het kanaal domoticz out is zichtbaar met dit commando:

code:
1
~ $ mosquitto_sub -F "%U - %t - %p" -v -h 192.168.2.22 -p 1883 -t '#'


Met het commando voor het topic domoticz in
code:
1
mosquitto_sub -h 192.168.2.22 -v -t "#"


Krijg ik de melding
state/PC OFF

Wat dus betekent dat het project verbonden is met mijn netwerk en praat met MQTT.

Kortom de vraag concreet is hoe krijg ik dit appraat als switch in domoticz?

Alle reacties


  • Knielen
  • Registratie: December 2009
  • Laatst online: 21:50
Je Domoticz installatie luistert naar het topic Domoticz/in, terwijl je Wemos post op het topic state/PC. Op deze manier kunnen ze elkaar dus niet vinden. Als je Wemos geen optie heeft om het topic te veranderen naar Domoticz/in zal je moeten gaan werken met een extra pakket, meestal wordt hiervoor Node Red gebruikt. Node Red kan naar alle kanalen luisteren en zal dus het topic state/PC in de gaten houden. Als daar een bericht op binnen komt kan deze het doorsturen naar Domoticz/in en zo vertalen dat Domoticz weet welke (virtuele) switch geschakeld zal worden.
Je hebt dus helaas nog wat uitzoek werk, Node Red is qua interface heel mooi, maar ik had er best wat moeite mee om het onder de knie te krijgen. Gelukkig hebben we hier op Tweakers een behulpzaam Node Red topic.

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Dit is wel een handig programma om de mqtt berichten voorbij zien vliegen
http://mqtt-explorer.com/

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • wou5er
  • Registratie: Maart 2009
  • Niet online
Knielen schreef op maandag 17 mei 2021 @ 20:24:
Je Domoticz installatie luistert naar het topic Domoticz/in, terwijl je Wemos post op het topic state/PC. Op deze manier kunnen ze elkaar dus niet vinden. Als je Wemos geen optie heeft om het topic te veranderen naar Domoticz/in zal je moeten gaan werken met een extra pakket, meestal wordt hiervoor Node Red gebruikt. Node Red kan naar alle kanalen luisteren en zal dus het topic state/PC in de gaten houden. Als daar een bericht op binnen komt kan deze het doorsturen naar Domoticz/in en zo vertalen dat Domoticz weet welke (virtuele) switch geschakeld zal worden.
Je hebt dus helaas nog wat uitzoek werk, Node Red is qua interface heel mooi, maar ik had er best wat moeite mee om het onder de knie te krijgen. Gelukkig hebben we hier op Tweakers een behulpzaam Node Red topic.
Bedankt voor je informatieve post :). Ik heb node red op de pi staan, maar uitgeschakeld na pogingen in het verleden die tot niets uitliepen.
Het script kan ik aanpassen in IDE arduino.

code:
1
2
3
4
5
6
7
8
client.publish("checkIn/linsdayPCMCU", "Reconnected"); 
        }
        if(boot == true)
        {
          client.publish("checkIn/PCMCU", "Rebooted");
          boot = false;
        }
        client.subscribe("commands/PC");


zou moeten zijn?:

code:
1
2
3
4
5
6
7
8
client.publish("checkIn/linsdayPCPowerSwitch", "Reconnected"); 
        }
        if(boot == true)
        {
          client.publish("checkIn/PCPowerSwitch", "Rebooted");
          boot = false;
        }
        client.subscribe("Domoticz/in");

  • Knielen
  • Registratie: December 2009
  • Laatst online: 21:50
In de wiki van Domoticz kan je zien hoe een bericht eruit hoor te zien, als je dit voor elkaar krijgt in je Wemos dan ben je er.

Voorbeeld van het schakelen van een switch:
code:
1
{"command": "switchlight", "idx": 2450, "switchcmd": "On" }


Waarbij de idx het nummer is van je switch, terug te vinden bij de eigenschappen in Domoticz, of de lijst met devices.

  • wou5er
  • Registratie: Maart 2009
  • Niet online
Ik ben al een eindje gok ik zo, ondertussen heb ik mqtt discovery plugin in domoticz gezet.
En dit script zou voor home assistant moeten werken en dus moeten worden gevonden door MQTT discovery.

Punt is dus dat het de mqtt client niet gevonden word in domoticz.

In de broker heb ik de volgende topics

Afbeeldingslocatie: https://tweakers.net/i/u937Mo9Lqi0m87RI-T6Hfgzmi00=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/X70kAolm69WaLKeeJEpPRXgJ.png?f=user_large

Hoe krijg ik een de switch van dit device?



Ondertussen weer wat lopen prutsen.

Ik nu heb is dat de status payload van de PC nu in domoticz/in gepublished word...

Maar waar ik moeite mee heb is, hoe kan ik de status die in domoticz/in gegeven word koppelen aan een virtuele switch die op zijn beurt de status van de computer weergeeft. Aan of Uit.

Dit geeft mijn log aan in domoticz

2021-05-20 13:22:44.541 MQTT: Topic: domoticz/in, Message: ON
2021-05-20 13:22:44.242 Error: MQTT: Invalid data received!
2021-05-20 13:22:44.542 Error: MQTT: Invalid data received!
2021-05-20 13:22:47.221 MQTT: Topic: domoticz/in, Message: OFF
2021-05-20 13:22:47.221 Error: MQTT: Invalid data received!


Ook heb ik een andere functie namelijk de aan of uit knop deze word gepublished in commands/PC
Moet ik deze ook laten publishen in Domoticz/in?
En hoe krijg ik een virtuel switch gekoppeld aan het MQTT apparaat dat het commando uit moet voeren.

[ Voor 44% gewijzigd door wou5er op 20-05-2021 13:23 ]


  • wou5er
  • Registratie: Maart 2009
  • Niet online
Knielen schreef op dinsdag 18 mei 2021 @ 21:49:
In de wiki van Domoticz kan je zien hoe een bericht eruit hoor te zien, als je dit voor elkaar krijgt in je Wemos dan ben je er.

Voorbeeld van het schakelen van een switch:
code:
1
{"command": "switchlight", "idx": 2450, "switchcmd": "On" }


Waarbij de idx het nummer is van je switch, terug te vinden bij de eigenschappen in Domoticz, of de lijst met devices.
Ik heb het voor elkaar gekregen dat wanneer je het command:
{"command": "switchlight", "idx": 161, "switchcmd": "On" }
invoert in een mqtt explorer dat de switch in domoticz aan of uit gaat... dat werkt maar hoe stel ik dit in voor vast... en niet vanuit de broker maar vanuit apparaatje dat mqtt gebruikt...

Ik kan die koppeling niet voor elkaar krijgen is een compleet zwart gebied voor mij.

  • Knielen
  • Registratie: December 2009
  • Laatst online: 21:50
Daar gebruik ik dus NodeRed voor. Die luistert in dit geval naar het topic 'state/PC' en als daar de melding 'On' voorbij komt vertaalt hij dit naar een JSON string met {"command": "switchlight", "idx": 161, "switchcmd": "On" }.

Ik weet niet of dit makkelijker kan, misschien kan je eens proberen of
code:
1
client.publish("domoticz/in", "{"command": "switchlight", "idx": 161, "switchcmd": "On" }");
werkt, maar dat is vast te makkelijk gedacht.

  • wou5er
  • Registratie: Maart 2009
  • Niet online
Knielen schreef op donderdag 20 mei 2021 @ 15:01:
Daar gebruik ik dus NodeRed voor. Die luistert in dit geval naar het topic 'state/PC' en als daar de melding 'On' voorbij komt vertaalt hij dit naar een JSON string met {"command": "switchlight", "idx": 161, "switchcmd": "On" }.

Ik weet niet of dit makkelijker kan, misschien kan je eens proberen of
code:
1
client.publish("domoticz/in", "{"command": "switchlight", "idx": 161, "switchcmd": "On" }");
werkt, maar dat is vast te makkelijk gedacht.
Ik heb node red op mijn pi staan maar kom daar niet echt uit... de leercurve is behoorlijk bij node red als beginneling

Ok ik wil wel een start maken.

Ik nu in Node red MQTT in het topic ingesteld met state, waarin state de status van de pc aan of uit weergegeven word.

Welk "common, function" of dergelijke knop zou je daarna moeten kiezen? om dit vervolgens naar domoticz te sturen?
Ik neem aan dat ik moet eindigen met MQTT out in het topic domoticz in?

Excuses als ik te veel vraag maar als ik eenmaal een voorbeeld heb dan kan ik misschien de link leggen en van daaruit verder gaan prutsen :)


Ik heb nu dit gemaakt

Afbeeldingslocatie: https://tweakers.net/i/Dlj_Yb5SMStf0JJqICmKfm7HmPg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/XtMkJE65wmkLyQmLNBkZLSs7.png?f=user_large

Mqtt in vanaf "state" naar function switch met "==" payload is "On" daarna naar mqtt out naar domoticz /in

ik krijg nu in domoticz/in topic dus de "off" te zien

Maar heb nu niet bepaald het idee dat er iets gebeurt wanneer de pc aan of uit gaat.

_________________________________________________________________________________________

Heb ondertussen al wat lopen prutsen en heb het zover gekregen dat vanuit het topic state/PC de status On/Off worden door gezet naar domoticz/in.
Domoticz geeft in de log aan: Error: MQTT: Invalid data received!. Wat me opzich logisch lijkt, de payload is ook enkel On of Off.

Afbeeldingslocatie: https://tweakers.net/i/8waUvjiZFy6vPzYXX_ECmaCRaEw=/800x/filters:strip_exif()/f/image/UCyiFluryfmI007AVHZxMqKx.png?f=fotoalbum_large

Wat kun je invoeren om domoticz de data wel te verwerken en hem vervolgens aan een virtuele switch te koppelen.

Dit zijn de settings van de switch node
Afbeeldingslocatie: https://tweakers.net/i/vGRIe1BOePia_aqBFIQrrVLKAcc=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/OPS9iSawCuaywsfFxtfGSEsV.png?f=user_large

[ Voor 67% gewijzigd door wou5er op 20-05-2021 22:33 ]


  • Rouwette
  • Registratie: Maart 2007
  • Laatst online: 22-11 23:57

Rouwette

Rouwette.com

Mijn Tasmota apparaten kunnen de MQTT client niet bereiken.
niet op locoalhost of 127.0.0.1 of het IP niet (poort 1883)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pi@raspberrypi:/etc/mosquitto $ mosquitto --version
Error: Unknown option '--version'.
mosquitto version 2.0.10

mosquitto is an MQTT v5.0/v3.1.1/v3.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

 -c : specify the broker config file.
 -d : put the broker into the background after starting.
 -h : display this help.
 -p : start the broker listening on the specified port.
      Not recommended in conjunction with the -c option.
 -v : verbose mode - enable all logging types. This overrides
      any logging options given in the config file.

See https://mosquitto.org/ for more information.

Status
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pi@raspberrypi:/etc/mosquitto $ sudo systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT Broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset
   Active: active (running) since Sat 2021-05-22 21:00:45 CEST; 9min ago
     Docs: man:mosquitto.conf(5)
           man:mosquitto(8)
  Process: 3184 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exite
  Process: 3185 ExecStartPre=/bin/chown mosquitto: /var/log/mosquitto (code=exit
  Process: 3186 ExecStartPre=/bin/mkdir -m 740 -p /var/run/mosquitto (code=exite
  Process: 3187 ExecStartPre=/bin/chown mosquitto: /var/run/mosquitto (code=exit
 Main PID: 3188 (mosquitto)
    Tasks: 1 (limit: 3858)
   CGroup: /system.slice/mosquitto.service
           └─3188 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

mei 22 21:00:45 raspberrypi systemd[1]: Starting Mosquitto MQTT Broker...
mei 22 21:00:45 raspberrypi systemd[1]: Started Mosquitto MQTT Broker.
lines 1-16/16 (END)


Van Domoticz kan ik wel code de tasmota bereiken maar niet andersom. Zigbee2MQTT werkt wel nog.

https://www.rouwette.com/

Pagina: 1