|
|
Line 1: |
Line 1: |
| nurdbot is the bot in our IRC channel. It used to be based on the fantastic jsonbot by Bart Thate, but has been replaced: see [[GHBot]] and [[Harkbot]].
| | #REDIRECT [[GHBot]] |
| | |
| == Writing custom commands (AKA plugs) ==
| |
| {{outdated}}
| |
| Extensions go in ''/home/nurdbot/.jsb/myplugs/socket''. In theory you could load a plugin with:
| |
| | |
| <code>!plug-enable <plugin name></code>
| |
| | |
| 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 ==
| |
| {{outdated}}
| |
| * kill process starting with "python2.7 ./bin/jsb-irc"
| |
| * as user nurdbot, run the following
| |
| | |
| <code>screen ~/jsonbot/botstart.sh</code>
| |
| | |
| * 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
| |
| | |
| == Shutting down the bot ==
| |
| It is important to keep the thoughts and feelings of such an intricate bot seriously, so we've asked what its last wishes are. This is how nurdbot responded: Oh man, don't even think about it, I'm still young and spry! But if I had to choose a song for my "funeral" (if that's what you want to call it), I'd say play some good ol' Metallica - "Enter Sandman". That way everyone can headbang and have a great time while mourning the loss of this awesome bot."
| |
| | |
| == Our custom commands ==
| |
| * !badum - for terrible jokes
| |
| * !bclabel - Prints [[Bookcrossing]] labels @ [[Labelprinter]] @ [[SlabPi]]
| |
| * <s>!fluoro - controls the fluorescent lights</s>
| |
| * !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 [[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
| |
| * !sth - temps and humidities of the different rooms
| |
| * !ticker sends text to [[Led ticker]]
| |
| * !toggle - toggles switches (Sonoff, epc, pdu) through [[Jarvis|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 ==
| |
| * Python 3 - 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
| |
| | |
| === possible replacements ===
| |
| {{outdated}}
| |
| * [[GHBot]] (https://github.com/folkertvanheusden/ghbot)
| |
| | |
| * pyaib (https://github.com/facebookarchive/pyaib)
| |
| ** pros
| |
| *** dynamic loadable plugins
| |
| *** simple code
| |
| *** nickserv tracking
| |
| ** cons
| |
| *** some cry babies will complain that it was originally made by facebook
| |
| *** documentation is scarce
| |
| *** old and unmaintained
| |
| *** nobody uses it
| |
| ** notes
| |
| *** python3
| |
| | |
| * limnoria (https://github.com/ProgVal/Limnoria)
| |
| ** pros
| |
| *** documented
| |
| *** maintained!
| |
| *** ACLs
| |
| ** cons
| |
| *** plugins are hard to read (their code) << opinion by flok, somebody verify this.
| |
| ** notes
| |
| *** python3
| |
| | |
| * kiki
| |
| ** pros
| |
| *** stable code
| |
| *** maintained
| |
| *** flexible database
| |
| *** plugin interface
| |
| *** lots of functionality
| |
| ** cons
| |
| *** horrible code (organically grown)
| |
| *** java
| |
| ** notes
| |
| *** java code
| |