2016-03-10

[Update] NetCologne DSL Spectrum @Home

After a support call, it is better, but still worse than before.

Download: 2458 kbit/s
Upload: 383 kbit/s

2016-03-08

2016-01-10

Setup/Configuration for another Magic Mirror

Note: Unfortunately, a glitch from the TV, which sometimes occurred before, seems now to be manifested. The TV doesn't power on anymore, neither using remote control nor buttons. I couldn't find a faulty component on TV circuit board. I will/have to stop this project. However, I have learned a lot, so it was not wasted time. 

General setup

  • Raspberry PI 2
  • SEG ArtColor TV 
  • PIR module (GPIO 17, 18), IR transmitter (GPIO 4)
The PIR module will detect motion. If a motion is sense the TV will be switched on via the IR transmitter (simulation of IR remote). After a predefined timeout periode without further motion the TV will switched off (to standby).

Install and enable lirc

  • install lirc
    sudo apt-get install lirc
  • enable lirc module - edit /boot/config.txt
    dtoverlay=lirc-rpi,gpio_out_pin=4,gpio_in_pin=22
  • configure lirc - edit /etc/lirc/hardware.conf
    LIRCD_ARGS=""
    ...
    DRIVER="default"
    DEVICE="/dev/lirc0"
    MODULES="lirc_rpi"
    

Setup IR command to power on/off the TV

  • learn IR command
    irrecord -d /dev/lirc0 ~/lircd.conf
  • copy new file
    sudo cp ~/lircd.conf /etc/lirc/lircd.conf
  • edit the name parameter in /etc/lirc/lircd.conf I choose magicmirror
  • start lirc
    pi@mamomami /etc/lirc $ sudo /etc/init.d/lirc start
    [ ok ] Loading LIRC modules:.
    [ ok ] Starting remote control daemon(s) : LIRC :.
  • check if IR command is available
    pi@mamomami /etc/lirc $ irsend LIST "magicmirror" ""
    irsend: 00000000000043bc KEY_POWER
    
  • run lirc service on start up
    sudo update-rc.d lirc defaults

2016-01-08

Ansible: using numbered backreference followed by digit in lineinfile

While playing around with Ansible I've stumbled over a problem with backreferences followed by a digit.

The problem

I've want to modify some lines in a file like this:
# an example
something=xxxx
Lets assume I want to update the xxxx with some values.

A possible ansible playbook may look as follows:
---
- hosts: localhost
  tasks:
  - name: create file
    copy: src=./demo dest=/tmp/demo

  - name: update xxxx
    lineinfile:
      dest: /tmp/demo
      regexp: '^(.*)xxxx'
      line:   '\1{{ansible_date_time.year}}'
      backrefs: yes
      state: present

The update task "update xxxx" should inspect the file, search for the line with "xxxx" and replace the "xxxx" while keeping the part in front of it.
But the result is:
# an example
P16

The problem is that the backreference \1 is not resolved as expected but merged with (some) of the year digits. This results in the "P".

Solution

To solve it you have to use named groups. A named group is defined by (?P<name>pattern) and can than be reference with \g<1> or \g<name>

The following playbook shows all three variants.
For the example file
# an example
simple backref=xxxx
group backref with number=yyyy
group backref with name=zzzz
the generated output is:
# an example
P16
group backref with number=2016
group backref with name=2016

Update 2019-10-29: Replace inline code by embedded github gist to fix issue with not shown group in example.

2015-10-23

Magic-Mirror: OpenWeatherMap Fix und TimeStamp bei den News

Wegen einer Änderung der API bei OpenWeatherMap bedurfte mein MagicMirror einer Wartung. Zum Glück waren die Änderungen gering: Beschrieben sind sie schon an anderer Stelle, daher hier nur ein Link auf eine Beschreibung in Deutsch und beim Magic-Mirror Autor.

Daneben habe ich die Gelegenheit gleich genutzt, um die Anzeige der News um die Angabe der Veröffentlichungszeit zu ergänzen. Das ganze sieht jetzt so aus:


Das GitHub Projekt ist entsprechend aktualisiert - wer will ... bitte schön.

2015-10-11

Get the current role name in an Ansible Role

Since Ansible 1.8 the variable role_path returns the current role's pathname (see Ansible docs). Use the basename filter to extract the role name.
{{ role_path | basename }}
Note: role_path is only defined inside a role.

2015-10-03

Install inadyn-mt on CentOS7

(Update: see post "Updated inadyn-mt package for CentOS7")

I didn't found an inadyn-mt rpm package for CentOS7. So I built one myself:
  • Download the source rpm for Fedora 22.
  • Install the source rpm
    rpm -i inadyn-mt-2.24.44-1.fc22.src.rpm
  • The sources are installed in the ~/rpmbuild directory.
  • Move to the rpmbuild directory and run rpmbuild
    cd ~/rpmbuild/SPECS
    rpmbuild -ba inadyn-mt.spec
    
  • That's all. The rpm can now be installed with
    rpm -i ~/rpmbuild/RPMS/x86_64/inadyn-mt-2.24.44-1.el7.centos.x86_64.rpm
Here you can download it: inadyn-mt-2.24.44-1.el7.centos.x86_64.rpm