summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2015-07-04 18:35:03 +0200
committermakefu <github@syntax-fehler.de>2015-07-04 18:35:03 +0200
commit882a05aa29d461f9cea518914f1d7f3ba14f26f5 (patch)
treea0cb7af08be6d01836933f48998582748738e547
parent3e2c5846743ed352cd369a0e9d955047177b6eb3 (diff)
add mosquitto and nodemcu
-rw-r--r--content/posts/deluge-change-useragent.rst25
-rw-r--r--content/posts/mosquitto-and-nodemcu.md84
2 files changed, 109 insertions, 0 deletions
diff --git a/content/posts/deluge-change-useragent.rst b/content/posts/deluge-change-useragent.rst
new file mode 100644
index 0000000..a963dea
--- /dev/null
+++ b/content/posts/deluge-change-useragent.rst
@@ -0,0 +1,25 @@
+Change Deluge User-Agent
+########################
+:date: 2015-04-28
+:tags: deluge,user-agent,switch
+
+For some torrents bittorrent peers seem to refuse sharing with my deluge
+daemon because it had the wrong 'user-agent' (read: Discrimination).
+
+Fortunately, on the internet nobody knows you are a dog. As long as we show
+the correct name-tag and provide some basic features we will be good to go::
+
+ vim $(find / -path '*deluge/core/core.py' )
+
+Now, change the following lines:
+
+.. code-block:: diff
+
+ 90c90
+ < self.session = lt.session(lt.fingerprint("DE", *version), flags=1)
+ ---
+ > self.session = lt.session(lt.fingerprint("UT", 3, 3, 1, 0), flags=1)
+ 97c97
+ < self.settings.user_agent = "Deluge %s" % deluge.common.get_version()
+ ---
+ > self.settings.user_agent = "uTorrent/3310(30017)"
diff --git a/content/posts/mosquitto-and-nodemcu.md b/content/posts/mosquitto-and-nodemcu.md
new file mode 100644
index 0000000..0e3ee16
--- /dev/null
+++ b/content/posts/mosquitto-and-nodemcu.md
@@ -0,0 +1,84 @@
+title: MQTT and Nodemcu
+date: 2015-07-04 18:00
+tags: nodemcu,mqtt,archlinux,graphite
+
+This blog should provide a technical walkthrough to get an mqtt environment
+running. It connects an [ESP8266 Microcontroller](http://s.click.aliexpress.com/e/qjiYvjiQb?af=130085010) uC to the MQTT server and transfers the messages
+into graphite messages
+
+## Install Mosquitto on arch
+
+```bash
+user: gpg --recv-keys 779B22DFB3E717B7
+# use "keyserver http://http-keys.gnupg.net" if --recv-keys didn't work
+user: yaourt mosquitto
+root: echo user mosqitto >> /etc/mosquitto/mosquitto.conf
+root: systemctl start mosquitto
+```
+
+## ESP8266 uC
+With nodemcu on the most current version (as of 2015-07-04) of nodemcu and upload:
+
+```lua
+-- connect to wifi
+ident="123211"
+m = mqtt.Client(ident,120)
+mqtt_host="10.0.0.1"
+mqtt_port=1883
+m:connect(mqtt_host,mqtt_port,0,function(conn)
+ print("connected")
+end)
+
+function send_temperature()
+ status,temp,humi,temp_decimial,humi_decimial = dht.read(4)
+ m:publish(string.format("/temperature/%s",ident),string.format("%.2f",temp),0,0)
+ m:publish(string.format("/humidity/%s",ident),string.format("%.2f",humi),0,0)
+end
+tmr.stop(1)
+tmr.alarm(1,1000,1,send_temperature)
+```
+
+## Python mqtt Subscriber
+Subscribes temperature and humidity infos and sends it to graphite
+```python
+#!/usr/bin/env python
+# pip install paho-mqtt
+import paho.mqtt.client as mqtt
+graphite_host='heidi.shack'
+def on_connect(client, userdata, flags, rc):
+ print("Connected with result code " + str(rc))
+
+ client.subscribe("/temperature/#")
+ client.subscribe("/humidity/#")
+
+
+import socket
+def to_graphite(path,data,ts=None,host='localhost',port=2003):
+ if not ts: ts = datetime.now().timestamp()
+ sock = socket.socket()
+ data="{} {} {}\n".format(path,data,ts)
+ try:
+ sock.connect((host, port))
+ sock.sendall(data.encode())
+ sock.close()
+ print("sent '{}'".format(data.strip()))
+ except Exception as e:
+ print(e)
+ print("cannot send message '{}'".format(data))
+
+def on_message(client, userdata, msg):
+ t = msg.topic
+ print(msg.topic + " " + str(msg.payload))
+ if t.startswith('/temperature') or t.startswith('/humidity'):
+ typ=t.split('/')[1]
+ ident=t.split('/')[-1]
+ to_graphite("sensors.temp.id.{}.{}".format(ident,typ),float(msg.payload),int(msg.timestamp),host=graphite_host)
+
+client = mqtt.Client()
+client.on_connect = on_connect
+client.on_message = on_message
+
+client.connect("heidi.shack", 1883, 60)
+
+client.loop_forever()
+```