MQTT Publish Plugin
-
- 1 star
- Posts: 9
- Joined: Tue 09 Nov 2010, 21:51
MQTT Publish Plugin
Ok, mitt första försök till plugin.. Det är kort och gott som namnet säger - alla händelser on/off/dim osv publiceras på en MQTT broker av intresse. Jag har använt mig utav nMQTT biblioteket för hantering av MQTT-protokollet (https://github.com/markallanson/nmqtt)
Exempel på ett meddelande:
Topic: /switchking/performedaction/device/21
Payload: { deviceId: 21, deviceName:"Altan+dimmer", deviceActionId: 2, deviceActionName: "Turn+On", dimLevel: 50, eventSource:"PerformedAction"}
deviceActionName UTF8-encode'as i meddelandet.
Todo är bl a att kunna välja att har persistenta meddelanden...
Updates:
0.2 - Mer dynamisk konfig av topic beroende på innehåll i meddelande + förhoppningsvis en fix av exception-hantering. dimLevel är nu numerisk eller null
0.3 - Fix för crash, Skickar meddelande bara 1 gång - ignorerar repeterande meddelanden under en 30s period, inkluderar separat logg (för utvecklingssyfte). Kolla config-filen. Nya attribut
Exempel på ett meddelande:
Topic: /switchking/performedaction/device/21
Payload: { deviceId: 21, deviceName:"Altan+dimmer", deviceActionId: 2, deviceActionName: "Turn+On", dimLevel: 50, eventSource:"PerformedAction"}
deviceActionName UTF8-encode'as i meddelandet.
Todo är bl a att kunna välja att har persistenta meddelanden...
Updates:
0.2 - Mer dynamisk konfig av topic beroende på innehåll i meddelande + förhoppningsvis en fix av exception-hantering. dimLevel är nu numerisk eller null
0.3 - Fix för crash, Skickar meddelande bara 1 gång - ignorerar repeterande meddelanden under en 30s period, inkluderar separat logg (för utvecklingssyfte). Kolla config-filen. Nya attribut
You do not have the required permissions to view the files attached to this post.
Last edited by pgoth on Wed 13 Nov 2013, 13:26, edited 5 times in total.
-
- 4 stars
- Posts: 336
- Joined: Thu 19 Jul 2012, 19:41
Re: MQTT Publish Plugin
Kul,
Jag testar just nu en MQTT klient i python som kör i EventGhost, planerar en plugin för detta. Anslutning till "test.mosquitto.org" funkar fint.
Jag har alltså förstått det så att man kan konfigurera SK med din plugin så att jag får SK-händelser via en MQTT Broker?
Är dessa Brokers publika?
Kan man relativt enkelt sätta upp en egen broker, tex i en RaspBerry Pi?
EDIT: Tror jag hittade detta själv,
http://rasspberrypi.wordpress.com/2012/ ... be-client/
Stöds krypterad kommunikation via MQTT klienter och brokers?
mvh
Jag testar just nu en MQTT klient i python som kör i EventGhost, planerar en plugin för detta. Anslutning till "test.mosquitto.org" funkar fint.
Jag har alltså förstått det så att man kan konfigurera SK med din plugin så att jag får SK-händelser via en MQTT Broker?
Är dessa Brokers publika?
Kan man relativt enkelt sätta upp en egen broker, tex i en RaspBerry Pi?
EDIT: Tror jag hittade detta själv,
http://rasspberrypi.wordpress.com/2012/ ... be-client/
Stöds krypterad kommunikation via MQTT klienter och brokers?
mvh
-
- 1 star
- Posts: 9
- Joined: Tue 09 Nov 2010, 21:51
Re: MQTT Publish Plugin
Japp, denna skickar ut alla händelser till vald broker. Jag kör själv Mosquitto-brokern på en Raspberry Pi (guide: http://mosquitto.org/2013/01/mosquitto- ... epository/ )
Det stämmer - test.mosquitto.org och m2m.eclipse.org är publika testservrar.
Jadå, du kan använda SSL mellan klient/broker. Mosquittos testserver har stöd för SSL så du kan testa där om du inte satt upp/konfigurerat din egen
Det stämmer - test.mosquitto.org och m2m.eclipse.org är publika testservrar.
Jadå, du kan använda SSL mellan klient/broker. Mosquittos testserver har stöd för SSL så du kan testa där om du inte satt upp/konfigurerat din egen
PS. ska skriva om så att man smartare kan sätta topic baserat på innehåll i ett event. Kommer snart en uppdatering...The server listens on ports 1883, 8883 and 8884. Port 1883 is the standard unencrypted MQTT port and can be used with any MQTT client. Ports 8883 and 8884 use certificate based SSL/TLS encryption and require client support to connect. In both cases should use the certificate authority file mosquitto.org.crt to verify the server connection. Port 8883 allows unrestricted connections. Port 8884 requires clients to provide their own certificate to authenticate their connection. If you wish to obtain a client certificate, please get it touch.
-
- 3 stars
- Posts: 134
- Joined: Fri 31 Aug 2012, 20:14
Re: MQTT Publish Plugin
Följer detta med spänning!
Skickat från min GT-I9505 med Tapatalk
Skickat från min GT-I9505 med Tapatalk
-
- 4 stars
- Posts: 336
- Joined: Thu 19 Jul 2012, 19:41
Re: MQTT Publish Plugin
Hej,
1) Fått igång MQTT brokern på RPi (192.168.10.248)
2) Ansluter till den via Putty och ser att den lyckas med det
3) Ser att Switchking ansluter också
4) Ser att Switchking gör en ny connection varje gång man styr ett device, tex dim av lampa
5) Får dock inte in några händelser till min MQTT Client....
Antagligen är subscription till topics felaktig....chansade på switchking/*
Kan du ge ett exempel så att alla händelser från SK trillar över?
mvh
PS jag lyckas krascha SK servern ganska enkelt nu...har du sett några liknande problem?
1) Fått igång MQTT brokern på RPi (192.168.10.248)
2) Ansluter till den via Putty och ser att den lyckas med det
Code: Select all
mosquitto_sub -h 192.168.10.248 -d -t switchking/*
Code: Select all
1382025589: New client connected from 192.168.10.250 as SwitchKingServer (c1, k30).
5) Får dock inte in några händelser till min MQTT Client....
Antagligen är subscription till topics felaktig....chansade på switchking/*
Kan du ge ett exempel så att alla händelser från SK trillar över?
mvh
PS jag lyckas krascha SK servern ganska enkelt nu...har du sett några liknande problem?
-
- 1 star
- Posts: 9
- Joined: Tue 09 Nov 2010, 21:51
Re: MQTT Publish Plugin
Ja, det är lite problem med koden har jag märkt. Så avinstallera så ska jag se över :-/ Sorry - lite felaktig exceptionhantering såg jag. Återkommer med en fix.
Jag ser att du i klienten har använt "*" istället för "#" - det gör att din subscription inte fungerar korrekt. Det bör vara
Om din prependtopic heter "switchking/"
Jag ser att du i klienten har använt "*" istället för "#" - det gör att din subscription inte fungerar korrekt. Det bör vara
Code: Select all
mosquitto_sub -h 192.168.10.248 -d -t "switchking/#"
-
- 4 stars
- Posts: 336
- Joined: Thu 19 Jul 2012, 19:41
Re: MQTT Publish Plugin
Okej tack,
I default finns i din xml den här raden:
Hur skall den se ut om jag vill att alla SK events skall skickas ut?
Så här?
Om jag sedan ansluter min client enligt nedan
så händer inget...jag ser inga händelser från SK
mvh
I default finns i din xml den här raden:
Code: Select all
<add key="Topic" value="/switchking/{eventSource}/device/{deviceId}"/>
Så här?
Code: Select all
<add key="Topic" value="/switchking/#">
Code: Select all
mosquitto_sub -h 192.168.10.248 -d -t "switchking/#"
mvh
-
- 1 star
- Posts: 9
- Joined: Tue 09 Nov 2010, 21:51
Re: MQTT Publish Plugin
Alla events skickas alltid ut på brokern. Inga restriktioner. Sen väljer du att göra subscribe på något specifikt.
Så du kan t ex ha kvar default topic
och sedan så prenumererar du på..
"#" är ett wild card som ger dig alla topics efter text som lyder innan. T ex
Du kan dock inte använda "#" i din topic-definition som du gjorde i exemplet.
Jag såg att du hade missat en inledande fw-slash "/" in din subscription så därför får du inget svar i din klient. (dvs om din topic-definition inte hade haft "#" i value vilket alltså inte är korrekt)
Så du kan t ex ha kvar default topic
Code: Select all
<add key="Topic" value="/switchking/{eventSource}/device/{deviceId}"/>
Code: Select all
mosquitto_sub -h 192.168.10.248 -d -t "/switchking/#"
Code: Select all
/switchking/1
/switchking/1/test/76
Jag såg att du hade missat en inledande fw-slash "/" in din subscription så därför får du inget svar i din klient. (dvs om din topic-definition inte hade haft "#" i value vilket alltså inte är korrekt)
-
- 4 stars
- Posts: 336
- Joined: Thu 19 Jul 2012, 19:41
Re: MQTT Publish Plugin
Tack,, det fungerar nu!
Faktiskt gick följande också bra:
Faktiskt gick följande också bra:
Code: Select all
mosquitto_sub -h 192.168.10.248 -d -v -t "#"
-
- 4 stars
- Posts: 336
- Joined: Thu 19 Jul 2012, 19:41
Re: MQTT Publish Plugin
Hej,
Lite feedback, så som jag upplever det...
0) Vid första anslutningen, första eventet kommer ofta in snabbt till klienten
1) Events kommer därefter ofta in till klienten i dubbletter, därefter blir det *segt*, man kan även se detta i SK klienten när man tex ändrar dim värden snabbt, SK klienten verkar *hänga* en kort stund innan *datat gått iväg*
2) Events *stoppas* då liksom upp en stund, det kan dröja en liten stund innan senaste eventet faktiskt kommer in till klienten (jag har testat detta både med dim och on/off kommandon)
3) Samma beteende oavsett om jag använder lokal broker på min RPi eller om jag testar med m2m.eclipse.org
Mvh Walter
Lite feedback, så som jag upplever det...
0) Vid första anslutningen, första eventet kommer ofta in snabbt till klienten
1) Events kommer därefter ofta in till klienten i dubbletter, därefter blir det *segt*, man kan även se detta i SK klienten när man tex ändrar dim värden snabbt, SK klienten verkar *hänga* en kort stund innan *datat gått iväg*
2) Events *stoppas* då liksom upp en stund, det kan dröja en liten stund innan senaste eventet faktiskt kommer in till klienten (jag har testat detta både med dim och on/off kommandon)
3) Samma beteende oavsett om jag använder lokal broker på min RPi eller om jag testar med m2m.eclipse.org
Mvh Walter
Who is online
Users browsing this forum: No registered users and 3 guests