Skip to content

Instantly share code, notes, and snippets.

🐙
Working full time on OctoPrint

Gina Häußge foosel

🐙
Working full time on OctoPrint
Block or report user

Report or block foosel

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@foosel
foosel / Dockerfile
Last active May 12, 2019
Simple Dockerfile & composition to run a speedtest2mqtt setup using speedtest-rs from https://github.com/nelsonjchen/speedtest-rs
View Dockerfile
FROM rust:1.31
WORKDIR /usr/src
RUN git clone https://github.com/nelsonjchen/speedtest-rs
WORKDIR ./speedtest-rs
RUN cargo install --path .
ADD entrypoint.sh /opt/speedtest2mqtt.sh
RUN apt-get update && \
@foosel
foosel / Dockerfile
Created May 12, 2019
Simple Dockerfile & composition to run a speedtest2mqtt setup using speedtest-go from https://github.com/showwin/speedtest-go
View Dockerfile
FROM alpine:3.7
ADD entrypoint.sh /opt/speedtest2mqtt.sh
COPY speedtest-go /usr/bin/speedtest-go
RUN apk update && \
apk add ca-certificates mosquitto-clients && \
rm -rf /var/cache/apk/* && \
chmod 777 /opt/speedtest2mqtt.sh
@foosel
foosel / rewrite_wait_to_busy.py
Last active Sep 14, 2019
OctoPrint plugin that rewrites received wait responses to echo:busy processing for broken firmware misunderstanding when wait should be used. Place in ~/.octoprint/plugins
View rewrite_wait_to_busy.py
# coding=utf-8
import logging
def rewrite_wait_to_busy(comm_instance, line, *args, **kwargs):
if line == "wait" or line.startswith("wait"):
return "echo:busy processing"
else:
return line
@foosel
foosel / strip_m110_parameter.py
Created Jan 11, 2018
OctoPrint plugin that strips any parameters from M110 commands to work around firmware quirks. Manually place in ~/.octoprint/plugins
View strip_m110_parameter.py
# coding=utf-8
def strip_M110_parameter(comm_instance, phase, cmd, cmd_type, gcode, subcode=None, *args, **kwargs):
if gcode != "M110":
return
return "M110" # make sure we always just send M110, no N parameters or anything else
__plugin_name__ = "Strip M110 Parameters"
__plugin_description__ = "Strips any parameters from M110 commands to work around firmware quirks"
__plugin_author__ = "Gina Häußge"
@foosel
foosel / liberapay_per_month.js
Last active Dec 14, 2017
Small user script to be used with something like TamperMonkey that will add a tooltip to the "x receives y per week from z patrons" that provides the amount per month. Currently only works with the english locale of liberapay.
View liberapay_per_month.js
// ==UserScript==
// @name Liberapay donations per month
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Hovering over the "user receives ... per week from ... patrons" will now show the received amount per month. Currently only works for the english version since it matches the header line via the contained text - couldn't find better attributes for that.
// @author Gina Häußge <osd@foosel.net>
// @match https://liberapay.com/*
// @grant none
// ==/UserScript==
@foosel
foosel / README.md
Created Mar 7, 2017
OctoPrint settings for BQ Hephestos 2
View README.md

OctoPrint settings for BQ Hephestos 2

Printer Profile

Print volume:

  • width: 210
  • depth: 297
  • height: 220
@foosel
foosel / README.md
Last active May 26, 2018
Patron Export Helper
View README.md

Patron Export Helper

Parses CSV Export of patrons from patreon.com, allows extracting patrons pledging for reward levels provided on command line and rendering them to stdout using a provided jinja2 template file.

Setup

Requires unicodecsv, jinja2 and click:

pip install unicodecsv jinja2 click python-dateutil iso3166
View serial.log
2014-10-23 16:58:02,141 - SERIAL - DEBUG - Enabling serial logging
2014-10-23 16:58:09,247 - SERIAL - DEBUG - Changing monitoring state from 'Operational' to 'Closed'
2014-10-23 16:58:13,303 - SERIAL - DEBUG - Connection closed, closing down monitor
2014-10-23 16:58:16,878 - SERIAL - DEBUG - Changing monitoring state from 'Offline' to 'Opening serial port'
2014-10-23 16:58:16,883 - SERIAL - DEBUG - Connecting to: /dev/ttyAMA0
2014-10-23 16:58:16,922 - SERIAL - DEBUG - Connected to: Serial<id=0x1ad8fb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=20.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
2014-10-23 16:58:16,926 - SERIAL - DEBUG - Changing monitoring state from 'Opening serial port' to 'Connecting'
2014-10-23 16:58:36,974 - SERIAL - DEBUG - Send: M105
2014-10-23 16:58:37,000 - SERIAL - DEBUG - Recv: ok T:21.5 /0.0 B:21.1 /0.0 @:0%
2014-10-23 16:58:37,005 - SERIAL - DEBUG - Changing monitoring state from 'Connecting' to 'Operational'
@foosel
foosel / README.md
Last active Jan 24, 2017
First experiments with NodeMCU to publish the current settings of my adjustable height working desk to MQTT
View README.md

First experiments with NodeMCU to publish the current settings of my adjustable height working desk to MQTT.

NodeMCU can be found here: https://github.com/nodemcu/nodemcu-firmware

Note that you'll need a current version with support for floats (which the ultrasonic sensor library utilizes), I'm using 0.9.5 2015-03-18 with float support myself.

Support for the HC-SR04 sensor in NodeMCU can be found here: https://github.com/sza2/node_hcsr04

I provided my slightly adjusted version which makes measuring a non-blocking afair, allowing for callbacks when the measurement completes.

@foosel
foosel / README.md
Last active Mar 13, 2019
OctoPrint Filetab plugin & configuration instructions
View README.md

Moving the "Files" component from the sidebar to the tab section

  1. Create .octoprint/plugins/filetab, .octoprint/plugins/filetab/templates and .octoprint/plugins/filetab/static/css
  2. Copy __init__.py to .octoprint/plugins/filetab
  3. Copy filetab_tab.jinja2 to .octoprint/plugins/filetab/templates
  4. Copy filetab.css to .octoprint/plugins/filetab/static/css
  5. Optional: Adjust the appearance.components.tab.order to list plugin_filetab in .octoprint/config.yaml if you want the "Files" tab to be placed somewhere else than after the regular tab components, e.g.:
You can’t perform that action at this time.