Difference between revisions of "A Monitor Session with Python"

From piMyHome Project
Jump to navigation Jump to search
(Blanked the page)
 
Line 1: Line 1:
To understand the OWN messages better, you should start a monitor session on your Raspberry Pi and watch the OWN messages flying in from your domotic system. Analyzing these messages gives you an idea how it works. Below is a simple monitor script in Python.
 
  
start editor nano and create monitor.py
 
<pre>nano monitor.py</pre>
 
 
Copy and paste the script below into that file and save it.
 
After you saved the file, you have to make the file executable:
 
<pre>chmod 755 monitor.py</pre>
 
 
Copy the content of this script to moniotr.py
 
<pre>#! /usr/bin/python
 
# -*- coding: utf-8 -*-
 
import socket
 
 
# IP address and port to connect to the gateway, please attapt to your environment
 
default_gateway_host = "192.168.60.201"
 
default_gateway_port = 20000
 
 
gateway_addr_port = default_gateway_host, default_gateway_port
 
 
def monitor():
 
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
    try:
 
        sock.connect(gateway_addr_port)
 
        data = sock.recv(1024)
 
        # expect ACK from gateway
 
        if data != "*#*1##":
 
            raise Exception("Did not receive expected ACK, but: "+data)
 
        # Switch session to MONITOR mode
 
        sock.send("*99*1##")
 
        data = ""
 
        while 1:
 
            # Read data from MyHome(R) BUS
 
            next = sock.recv(1024)
 
            if next == "":
 
                break              # EOF
 
            data = data + next
 
            eom = data.find("##")
 
            if eom < 0:
 
                continue;          # Not a complete message, need more
 
            if data[0] != "*":
 
                raise Exception("Message does not start with '*': "+data)
 
            print data
 
            msg = data[1:eom]
 
            data = data[eom+2:]
 
    finally:
 
        sock.close()
 
 
monitor()</pre>
 
 
Now start the monitor and watch the messages fly by. Exit with CTRL-C.
 
<pre>./monitor.py</pre>
 

Latest revision as of 10:56, 16 November 2014