(9 intermediate revisions by 2 users not shown) | |||
Line 25: | Line 25: | ||
* !label - Prints labels with free text @ [[Labelprinter]] @ [[SlabPi]] | * !label - Prints labels with free text @ [[Labelprinter]] @ [[SlabPi]] | ||
* !janee - response in the affirmative or negatory sense to inquiries | * !janee - response in the affirmative or negatory sense to inquiries | ||
* !mpdtube - Sends search query or url to [[MPDTube]] | |||
* !ot - shows OpenTherm data from [[Jarvis|Home assistant]] | * !ot - shows OpenTherm data from [[Jarvis|Home assistant]] | ||
* !ot-set - Updates OpenTherm thermostat setpoint through [[Jarvis|Home assistant]] | |||
* !sensors - Queries sensors from [[Jarvis|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 | * !statustoggle - (temp) manually switch the space from closed to open | ||
* !sth - temps and humidities of the different rooms | * !sth - temps and humidities of the different rooms | ||
Line 33: | Line 37: | ||
* !wau-temp - Read the external temperature from the WUR sensors | * !wau-temp - Read the external temperature from the WUR sensors | ||
* !wikipedia - customised from the basic version | * !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 | * !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 |
Revision as of 00:08, 18 October 2020
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