From NURDspace

Jump to: navigation, search

NURDbot is a small IRC bot based on the fantastic jsonbot by Bart Thate. It runs on

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/

  • restarting the mqtt connection (for eg the temperature sensors):
    • kill and restart: /usr/bin/screen -d -m -S 'mqtt-to-sqlite3' /home/nurdbot/‎

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

  • 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

  • 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 (
    • 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
Our site is hosted by Site4U
Our connectivity is made available by BIT
To BIT's website