lmwsip
Introduction
lmwsip is a python library for the lmw sip protocol.
Package
The lmwsip package contains the class LmwSip to connect to the LMW meetnet using de SIP protocol. The library contains documentation how to use it.
Installing
The package is not available on PyPI. At the moment the package is hosted at https://marceln.org/download/python.
You can install the package with pip:
pip install --extra-index-url https://marceln.org/download/python lmwsip
Tools
lmwsip-test
A small test program containing some functions to test the library.
siprun
A prgram to run SIP command files. See "siprun -H" for usage information.
hoek-h10.sip
A sample sip command file to request the waterlevel at hoek van holland from the last hour
Username password
All files contain "USER", "PASS". These values should be replaced by real credentials. Otherwise the connection fails.
Examples
Library
Use send (low level)
from lmwsip import LmwSip
sip = LmwSip(ssl=True, host="sip-lmw.rws.nl", port=443)
sip.send("LI user,pass\r")
print("< [%s]" % (sip.recv().strip('\r')))
sip.send("TI LMW\r")
print("< [%s]" % (sip.recv().strip('\r')))
sip.send("LO\r")
print("< [%s]" % (sip.recv().strip('\r')))
Use value
from lmwsip import LmwSip
sip = LmwSip("USER", "PASS")
print(sip.ti())
print(sip.value("WN", "HOEK", "H10"))
sip.logout()
Use timeseries
from lmwsip import LmwSip
from datetime import datetime, timedelta
from pprint import pprint
end = datetime.now()
start = end - timedelta(hours=1)
sip = LmwSip("USER", "PASS")
pprint(sip.timeSerie("WN", "HOEK", "H10", start, end).ts)
lmwsip.run
$ python -m lmwsip.run /tmp/hoek-h10.sip
> [LI USER,PASS]
< [! ]
> [TI LMW]
< [! 08-SEP-20 12:03:27]
> [WN LMW,HOEK,H10,-01:00,08-09-2020,11:50,DATA]
< [! -17/50;-21/50;-24/50;-26/50;-27/50;-28/50;-28/50]
> [LO]
< [! ]
Git pre commit hook
Er is een git pre-commit hook aanwezig in "githooks". Deze moet geactiveerd worden door hem te symlinken naar .git/hooks.
Deze git hook verzorgt een versie nummer en een syntax check voor commit.
Het versie nummer komt uit de setup.py en word in de module geplaats als
__version__
.