Home / Community / Blog

I've upgraded Pi-hole do 4.0 version:

docker run -d --name pihole-4.0.0-1 \
           --dns 127.0.0.1 --dns 1.1.1.1 \
           -e ServerIP=192.168.1.28 -e DNS1=192.168.1.4 \
           -e WEBPASSWORD=secret \
           -p 8018:80 -p 53:53 -p 53:53/udp \
           --restart=unless-stopped \
           pihole/pihole:4.0.0-1

as you can see I use new name (pihole/pihole), set power policy and additional --dns option - it's necessary.

Last time I've to manually edit /etc/resolve.conf inside container - this is simple workaround.

There is easy way to control lights using PIR (Passive Infra Red) it looks like this:

As usually message from MQTT broker is translated to JSON, then I use switch to filter-out message from PIR (in my case AA0446). I sent "On" and 5 minutes later "Off" to template

{
  "idx" : 25,
  "command" : "switchlight",
  "switchcmd" : "{{payload}}"
}

Finally full message is sent to domoticz/in topic.

Complete code.

How to switch light using 3 channels 433MHz switch. It's very simple:

1 RF signal

My 3 button 433MHz switch sends 3 codes:

  • 672BE2- left button
  • 672BE8 - center button
  • 672BE4 - right button

2 MQTT publish

I set up RF Bridge to send MQTT messages like this (center button):

{
  "RfReceived" : {
    "Sync" : 7840,
    "Low" : 250,
    "High" : 780,
    "Data" : "672BE8",
    "RfKey" : "None"
  }
}

to topic:

tele/DVES_B2EFB9/RESULT

Domoticz needs to get mesage with topic:

domoticz/in

with payload like this:

{
  "idx" : 22,
  "command" : "switchlight",
  "switchcmd" : "Toggle"
}

We need to translate:

3, 4 and 5 message translation

Mosquitto and Node-RED are deployed using Docker on same machine:

docker run -it -p 1883:1883 -p 9001:9001 --name mosquitto \
-v mosquitto:/mosquitto/config -v mosquitto:/mosquitto/data \
-v mosquitto:/mosquitto/log eclipse-mosquitto

docker run -d -p 1880:1880 --restart=always  \
--log-opt max-size=10m --log-opt max-file=5 \
-v node-red-data:/data --name nodered \
--link mosquitto:broker nodered/node-red-docker:slim

You can see that I've link mosquitto container as broker.

The switch node splits messages depending on msg.payload.RfReceived.Data, and change node set properties (idx, command and switchcmd)

Here you have complete Node-RED code.

Finally Domoticz tuns the light!

Of course you have to have set up Domoticz first.

To change start page I've added in site.ini.append.php file in SiteSettings section:

[SiteSettings]
IndexPage=/content/view/full/134/
DefaultPage=/content/view/full/134/

If you don't have Linux station an you would like to debug some application witch syslog you can use Visual Syslog Server for Windows.

It's quite useful application that can emulate real syslog server.

You can show logs in realtime with filtering capabilities.

Recently I've found interesting device - it is WiFi to 433MHz gateway.

I've used FlashESP8266 to flash sonoff.bin (6.2.1).

Connect 3.3V USB-RS232 interface to J2 (you won't need 5th - SDA - pin).

To program you have to set S2 switch to OFF position.

As You can see it is in ON (normal) position.

Future reading:

Three chanel 433MHz relays - it uses specific protocol:

To backup running QEMU/KVM machine I use script made by Daniel Berteaud. I've installed it in this way:

cd /usr/local/sbin/
wget "http://gitweb.firewall-services.com/?p=virt-backup;a=blob_plain;f=virt-backup;hb=HEAD" -O virt-backup-0.2.17-1.pl
ln -s virt-backup-0.2.17-1.pl virt-backup
chmod u+x virt-backup-0.2.17-1.pl

as you can see current version is 0.2.17-1

There is also a fork of virt-backup: github.com/vazhnov/virt-backup.pl - it's based on some earlier version.

Example command to backup centos-test machine (name shown by virsh list) to /mnt/backups directory.

virt-backup --action=dump --no-snapshot --compress --shutdown --shutdown-timeout=300 --vm=centos-test --backupdir=/mnt/backups

I would like to have light with switch (it should work even without domoticz) but I would like to use power of domoticz also ;-)

In ESP (ESP6) I've devices:

  1. Switch input:
    • name: button
    • IDX: 25
    • 1st GPIO: GPIO16
    • Pull UP: set
    • Inversed: not set
    • Switch Type: Switch
    • Switch Button Type: Push Button Active Low
    • Send Boot state: not set (you can set it if you want)
    • Send Data: set
  2. Switch input
    • name: okno
    • IDX: 23
    • 1st GPIO: GPIO16
    • Pull UP: set
    • Inversed: set
    • Switch Type: Input
    • Switch Button Type: Normal Switch
    • Send Boot state: not set (you can set it if you want)
    • Send Data: set
  3. Switch input
    • name: zlew
    • IDX: 24
    • 1st GPIO: GPIO12
    • Pull UP: set
    • Inversed: set
    • Switch Type: Input
    • Switch Button Type: Normal Switch
    • Send Boot state: not set (you can set it if you want)
    • Send Data: set

In domoticz I've three "On/off" switches:

  • "ESP6-okno"
    • IDX: 23
    • On Action: http://esp6.lan/tools?cmd=GPIO,14,0
    • Off Action: http://esp6.lan/tools?cmd=GPIO,14,1
  • "ESP6-zlew"
    • IDX: 24
    • On Action: http://esp6.lan/tools?cmd=GPIO,12,0
    • Off Action: http://esp6.lan/tools?cmd=GPIO,12,1
  • "ESP6-both"
    • IDX: 25
    • On Action: http://esp6.lan/control?cmd=event,zapal
    • Off Action: http://esp6.lan/control?cmd=event,zgas

ESPeasy Rules:

On button#Switch do
  if [button#Switch]=0.00
    event zgas
  else
    event zapal
  endif
endon

on zapal do
  gpio,12,0
  gpio,14,0
endon

on zgas do
  gpio,12,1
  gpio,14,1
endon

As you can see when ESP6-both is changed I call "rules" from ESP

You can read more about rules in Rules Tutorial.

If you forgot to set-up power policy during container creation you can easy modify it:

docker update --restart=always my-container

you can check it:

docker@docker:~$ docker inspect my-container | grep -A3 "RestartPolicy"
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },

I want to import my pictures tags made in F-Spot (0.8.2) to digiKam (4.10)

I found Roland Geider script but it doesn't work in totay's Linux (differences in DBUS structure): Original F-Spot to digiKam script.

I've made trivial correction (comment-out problematic code) and now script looks like this:

You have to provide collection with the same path like in F-Spot. It can import tags.

If your F-Spot path doesn't exists anymore you have to alter photos.db. In my case some of pictures had path /home/zdjatka and some /mnt/zdjatka, but now all pictures are in the same place /mnt/zdjatka, so I alter path:

cp ~/.config/f-spot/photos.db ~/photos.db
sqlite3 ~/photos.db
update photos \
set base_uri=REPLACE(base_uri, "home", "mnt") \
where base_uri not like "%/mnt/zdjatka%";
update photo_versions \
set base_uri=REPLACE(base_uri, "home", "mnt") \
where base_uri not like "%/mnt/zdjatka%";
.quit

as you can see photos.db is sqlite3 database (usually located at ~/.config/f-spot/photos.db) and I copied file to home directory (not to modify original file).

Assuming you digiKam is initialized in Pictures directory and you have defined collection in same folder as is defined in F-Spot database (photos.db) complete command to convert is:

python fspot_to_digikam.py Pictures --fspot-folder .

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31