This wiki has been archived and made read-only.
For up-to-date information about TkkrLab and it's projects please visit our main website at tkkrlab.nl.

Difference between revisions of "MQTT"

From

Jump to: navigation, search
(Server)
(Topic opbouw)
Line 9: Line 9:
  
 
Luisteren naar pakketjes:
 
Luisteren naar pakketjes:
   mosquitto_sub -h mrmeeseeks -t "tkkrlab/#" -v
+
   mosquitto_sub -h mrmeeseeks.tkkrlab -t "tkkrlab/#" -v
  
 
==Topics==
 
==Topics==
 
* tkkrlab/powermanagement/# -> Wake-on-lan verzoeken
 
* tkkrlab/powermanagement/# -> Wake-on-lan verzoeken
* tkkrlab/statusduino/spaceknop (retained) -> Space status schakelaar: values: 1 (aan) of 0 (uit)
 
 
* tkkrlab/spacestate (retained) -> Space status: geeft aan of de space open of dicht is. Values: 1 (open) of 0 (dicht)
 
* tkkrlab/spacestate (retained) -> Space status: geeft aan of de space open of dicht is. Values: 1 (open) of 0 (dicht)
 +
* tkkrlab/ledmatrix -> Voor zenden berichten naar de ledmatrix
 +
* tkkrlab/meterkast/# -> Meterkast
 
* tkkrlab/sonoff/# -> Sonoff relay modules
 
* tkkrlab/sonoff/# -> Sonoff relay modules
  
Line 24: Line 25:
  
 
  -> Let op: maak berichten in dit topic nooit persistent!
 
  -> Let op: maak berichten in dit topic nooit persistent!
 +
 +
==Indeling tkkrlab/spacestate topic==
 +
Op dit topic ALLEEN LEZEN! De centrale (node-red) applicatie stuurt als enige berichten op dit topic.
 +
Mogelijke waarden: 1 (open) of 0 (dicht)
 +
 +
==Indeling tkkrlab/ledmatrix topic==
 +
Mogelijkheid 1: Stuur een string naar het topic, de string verschijnt dan als bericht op de ledmatrix
 +
Mogelijkheid 2: Stuur een JSON encoded string naar het topic, de matrix decodeert het bericht dan
 +
 +
JSON velden:
 +
- "text": Het bericht
 +
- "color": Kleur, notatie als een hex kleur met 6 cijfers: #FFFFFF
 +
- "bgcolor": Achtergrondkleur
 +
- "clear": Schuift alle bestaande berichten het scherm uit en laat het laatste (nieuwe) bericht als enige staan
 +
- "instantclear": Wist alle berichten zonder animatie en zet het laatste (nieuwe) bericht als enige neer
 +
- "blink": Wanneer dit veld op "1" wordt gezet knippert het bericht
 +
 +
==Indeling tkkrlab/meterkast topic ==
 +
Uitgangen schakelen: Stuur een bericht met als payload "0" voor uit of "1" voor aan naar "tkkrlab/meterkast/output/<NR>", waarin <NR> vervangen moet worden met een van onderstaande getallen:
 +
- 0: Relay 1 ()
 +
- 1: Relay 2 ()
 +
- 2: Relay 3 ()
 +
- 3: Relay 4 ()
 +
- 4: Led in lichtschakelaar
 +
 +
Ingangen lezen: Luister naar berichten op het topic "tkkrlab/meterkast/input/<NR>" waarin <NR> vervangen moet worden met een van de onderstaande getallen:
 +
- 0: Space status schakelaar
 +
- 1: Lichtschakelaar
 +
- 2: kWh meter 1
 +
- 3: kWh meter 2
 +
- 4: kWh meter 3
 +
- 5: kWh meter 4
 +
 +
Alle inputs sturen een 1 wanneer ze worden geactiveerd en een 0 wanneer ze worden gedeactiveerd. In het geval van de spaceknop ontvang je dus een "1" wanneer de schakelaar van UIT naar AAN gedraaid wordt en een "0" wanneer de schakelaar van AAN naar UIT gedraaid wordt. In het geval van de lichtschakelaar ontvang je een "1" wanneer iemand de knop indrukt en een "0" wanneer iemand de knop loslaat.
 +
 +
De kWh meters geven een puls bij iedere gemeten 1/2000 kWh. Omdat het een puls is ontvang je voor iedere puls kort na elkaar een "1" en een "0". De "0" kan worden genegeerd.
  
 
==Indeling tkkrlab/sonoff topic==
 
==Indeling tkkrlab/sonoff topic==

Revision as of 20:52, 21 June 2017

Server

mrmeeseeks.tkkrlab (10.42.1.2)

Topic opbouw

tkkrlab/# -> Voor Tkkrlab / Space berichten <nickname>/# -> Voor je eigen creaties

Gebruik alleen je eigen nickname als begin van je topics!

Luisteren naar pakketjes:

 mosquitto_sub -h mrmeeseeks.tkkrlab -t "tkkrlab/#" -v

Topics

  • tkkrlab/powermanagement/# -> Wake-on-lan verzoeken
  • tkkrlab/spacestate (retained) -> Space status: geeft aan of de space open of dicht is. Values: 1 (open) of 0 (dicht)
  • tkkrlab/ledmatrix -> Voor zenden berichten naar de ledmatrix
  • tkkrlab/meterkast/# -> Meterkast
  • tkkrlab/sonoff/# -> Sonoff relay modules

Indeling tkkrlab/powermanagement topic

Het publiceren van een bericht naar tkkrlab/powermanagement/<hostname> schakelt een computer in de space in of uit.

Toegestane values: 1 (on) en 0 (off). Als de staat van de machine niet overeen komt met het laatst ontvangen bericht dan reageert het systeem door de computer te starten met wake-on-lan of af te sluiten via een systeemservice op de machine zelf.

-> Let op: maak berichten in dit topic nooit persistent!

Indeling tkkrlab/spacestate topic

Op dit topic ALLEEN LEZEN! De centrale (node-red) applicatie stuurt als enige berichten op dit topic. Mogelijke waarden: 1 (open) of 0 (dicht)

Indeling tkkrlab/ledmatrix topic

Mogelijkheid 1: Stuur een string naar het topic, de string verschijnt dan als bericht op de ledmatrix Mogelijkheid 2: Stuur een JSON encoded string naar het topic, de matrix decodeert het bericht dan

JSON velden:

- "text": Het bericht
- "color": Kleur, notatie als een hex kleur met 6 cijfers: #FFFFFF
- "bgcolor": Achtergrondkleur
- "clear": Schuift alle bestaande berichten het scherm uit en laat het laatste (nieuwe) bericht als enige staan
- "instantclear": Wist alle berichten zonder animatie en zet het laatste (nieuwe) bericht als enige neer
- "blink": Wanneer dit veld op "1" wordt gezet knippert het bericht

Indeling tkkrlab/meterkast topic

Uitgangen schakelen: Stuur een bericht met als payload "0" voor uit of "1" voor aan naar "tkkrlab/meterkast/output/<NR>", waarin <NR> vervangen moet worden met een van onderstaande getallen:

- 0: Relay 1 ()
- 1: Relay 2 ()
- 2: Relay 3 ()
- 3: Relay 4 ()
- 4: Led in lichtschakelaar

Ingangen lezen: Luister naar berichten op het topic "tkkrlab/meterkast/input/<NR>" waarin <NR> vervangen moet worden met een van de onderstaande getallen:

- 0: Space status schakelaar
- 1: Lichtschakelaar
- 2: kWh meter 1
- 3: kWh meter 2
- 4: kWh meter 3
- 5: kWh meter 4

Alle inputs sturen een 1 wanneer ze worden geactiveerd en een 0 wanneer ze worden gedeactiveerd. In het geval van de spaceknop ontvang je dus een "1" wanneer de schakelaar van UIT naar AAN gedraaid wordt en een "0" wanneer de schakelaar van AAN naar UIT gedraaid wordt. In het geval van de lichtschakelaar ontvang je een "1" wanneer iemand de knop indrukt en een "0" wanneer iemand de knop loslaat.

De kWh meters geven een puls bij iedere gemeten 1/2000 kWh. Omdat het een puls is ontvang je voor iedere puls kort na elkaar een "1" en een "0". De "0" kan worden genegeerd.

Indeling tkkrlab/sonoff topic

  • tkkrlab/sonoff/<device>/cmd/POWER -> Lezen en schrijven van status: values: 1 (aan) of 0 (uit)
  • tkkrlab/sonoff/<device>/telemetry/LWT -> Status / watchdog
  • tkkrlab/sonoff/<device>/telemetry/STATE -> JSON met systeeminfo over node.
{"Time":"2017-05-21T21:13:57", "Uptime":1, "Vcc":3.237, "POWER":"1", "Wifi":{"AP":1, "SSID":"www.tkkrlab.nl", "RSSI":78, "APMac":"D8:C7:C8:A7:A8:31"}}

IRC bot

The IRC bot watches the MQTT server at the tkkrlab/spacestate topic to get space status. It is also possible for ops to use !force_status 0 / !force_status 1 to update the status manually, this will publish a retained message to tkkrlab/spacestate.