NURDbot is a small IRC bot based on the fantastic jsonbot by Bart Thate. It runs on nurdbot.vm.nurd.space.
Writing custom commands (AKA plugs)
Extensions go in /home/nurdbot/.jsb/myplugs/socket. In theory you could load a plugin with:
!plug-enable <plugin name>
In practice it turns out you have to kill the bot, start it again (see below how) and then do the !plug-enable.
Reloading the bot
- kill process starting with "python2.7 ./bin/jsb-irc"
- as user nurdbot, run the following
screen ~/jsonbot/botstart.sh
- restarting the mqtt connection (for eg the temperature sensors):
- kill and restart: /usr/bin/screen -d -m -S 'mqtt-to-sqlite3' /home/nurdbot/mqtt-to-sqlite3.py
Our custom commands
- !badum - for terrible jokes
- !bclabel - Prints Bookcrossing labels @ Labelprinter @ SlabPi
!fluoro - controls the fluorescent lights- !label - Prints labels with free text @ Labelprinter @ SlabPi
- !janee - response in the affirmative or negatory sense to inquiries
- !mpdtube - Sends search query or url to MPDTube
- !ot - shows OpenTherm data from Home assistant
- !ot-set - Updates OpenTherm thermostat setpoint through Home assistant
- !sensors - Queries sensors from Home assistant
- !speak / !spreek / !dire / !sprech / !habla - Text to speach using espeak on SlabPi (different languages yay \o/)
- !statustoggle - (temp) manually switch the space from closed to open
- !sth - temps and humidities of the different rooms
- !ticker sends text to Led ticker
- !toggle - toggles switches (Sonoff, epc, pdu) through Home assistant
- !toggle-list - shows a list of IDs that !toggle can use
- !wau-temp - Read the external temperature from the WUR sensors
- !wikipedia - customised from the basic version
- !who - Checks which known devices are connected to the Wifi (if you want to be on here, see Jarvis#Enable_tracking_for_your_MAC_address)
- !wol - Performs wake-on-lan actions for machines in the space
- !power - Current power consumption
- !sensor - Read sensors from hass
Bot replacement requirements
- Dynamically reloadable plugins
- Python - to make it less of a pain to convert the plugins
- ACL/Groups - current ones are for example SPACE , USER , MPD , SPEAK
- Nickserv integration - so we don't need to track users ourselves, perhaps, optional