PhotoFrame
photoframe

Het zal jullie niet ontgaan zijn dat fotografie een hobby van mij is. Ik maak als sinds 1967 foto's en vanaf 1977 heel intensief. In die tijd had ik veel foto's aan de muur en ontwikkelde ze ook in mijn donkere kamer. De spullen om de foto's af te drukken heb ik nog en ook nog de fotowissellijstjes aan de muur. Maar afdrukken en wisselen van de foto's is ook niet alles. In het begin had ik een klein digitaal fotolijstje, iets van 10" groot. Grotere lijstjes zijn eigenlijk niet te betalen, dus ik ging een aantal jaren geleden opzoek naar een andere oplossing.
Deze oplossing moest op een Raspberry Pi, een kleine computer, draaien. In die tijd was de enige oplossing die mij bevredigde FEH. Hiermee kon ik op mijn Raspberry Pi foto's afspelen. Die foto's konden op mijn netwerkschijf staan.

For the people who can't read Dutch, on The Digital Picture Frame  site there is a clear description in English.

thedigitalpictureframe

Rond 2019 liep ik tegen het programma PI3D aan. Dit was een in Python geschreven programma, waarmee je ook foto's kon tonen via een Rasperry Pi op een monitor. Dit programma heb ik gevonden via Wolfgang Männel van The Digital Picture Frame. Meer over de ontwikkeling is te lezen op deze pagina.

Het programma voldeed aan mijn wensen, totdat ik erachter kwam dat in het voorjaar van 2021 een nieuwe versie geschreven. Een versie met meer mogelijkheden dan de vorige versie. Of je die mogelijkheden allemaal gebruik, dat is een tweede, maar het is een klasse programma. Het wordt momenteel verder ontwikkeld door drie mensen, namelijk Paddy, Helge en Jeff. De software is beschikbaar via Github picframe

Behalve dat het een fantastisch programma is, kan je een en ander ook nog vanaf je iPhone, iPad of Mac bedienen. Via Android werkt het ook, maar daar heb ik weinig kas van gegeten. Als je behalve een Raspberry Pi ook nog een extra Raspberry Pi gebruikt met Home Assistant erop, kan je het digitale fotolijstje ook met die App bedienen en zelfs integreren je je Apple Woning App. Op deze pagina zal ik een en ander uitleggen. Het startpunt daarbij is een Raspberry Pi met Raspberry Pi OS erop. Weet je niet hoe dat moet dan zijn er verschillende sites. Op de site van Wolfgang is een en ander te lezen. Als ik het hieronder heb over Pi, dan bedoel ik natuurlijk de Raspberry Pi! Let er ook op dat je de "Raspberry Pi OS with Desktop” hebt geïnstalleerd, zo niet installeer deze dan! Meer informatie over het installeren van het Operating System (OS) op je Raspberry Pi lees je hier.


Wat heb je nodig
pi4gb

Als je nog niet beschikt over een Pi schaf dan de versie 4B aan, deze is nieuwer en heeft wat meer power onder de motorkap. Versie 4 komt in verschillende versies m.b.t. het geheugen, namelijk 2GB, 4GB of 8GB. Zelf heb ik er een met 2GB, dat voldoende is. Voor €20,- meer heb je een Pi met 4 Gb intern geheugen. Let wel op dat de voeding voor een Pi 4 minimaal 3A kan leveren bij 5V. Is dat niet zo, dan werkt de Pi niet of niet goed. Heb je nog niets, dan kan je het beste een Starter Kit aanschaffen, compleet met voeding (min. 3A), MicroSD kaartje (16Gb), verloop kabeltje micro-HDMI naar HDMI en een behuizing. SOS-Solutions in Eindhoven levert o.a. deze setjes.

Behalve de Pi heb je natuurlijk ook een scherm nodig waarop je de diashow kan afspelen. Ik gebruik hiervoor een 24" IPS-scherm met één HDMI-ingang om de Pi aan te sluiten. Verder is het handig dat de voet te demonteren is en dat er op de achterkant van het scherm VESA-aansluitingen zijn. Hiermee kan je het scherm eventueel aan de muur bevestigen. Het bevestigen kan met een muurbeugel, maar ook aan een schilderij ophangsysteem.

Home Assistant
homeassistant

Wil je het fotolijstje straks ook met het programma Home Assistant bedienen, dan heb je nog een tweede Raspberry Pi nodig. Met de Home Assistant, kan je je slimme lampen bedienen, maar ook je audiovisuele apparatuur. Ben je geen echte hobbyist, dan is Home Assistant eenvoudiger dan bijvoorbeeld Domoticz. Daarbij komt verder dat PictureFrame goed kan samenwerken met Home Assistant. Home Assistant beschikt over een web interface maar ook over een app voor op je smartphone of tablet.


Na installatie

Als je de Pi hebt geïnstalleerd moet je nog wat zaken regelen op je Pi. Hiervoor moet je connectie maken met de Pi. Er zijn meerdere mogelijkheden:

  • De eenvoudigste manier is aan je Pi een toetsenbord, muis en beeldscherm aan te sluiten. Je kan dan met de gebruikersnaam en het wachtwoord inloggen.
  • Je kan ook via een andere computer via een Terminal App een SSH connectie maken. Als je niet weet hoe dat moet onder Windows, dan staat hier een video. Linux en Mac hebben standaard een Terminal app aan boord.

Probeer ook eerst op je router het IP adres van je Pi te vinden. Het kan zijn dat je software de naam raspberrypi toont. Is dat niet het geval, kijk dan welk ip adres het kortste online is. Als je de gebruikersnaam niet gewijzigd hebt, dan is die pi

ssh pi@your-ip-address

Geef daarna het wachtwoord in. Heb je het niet gewijzigd, dan is dat raspberry

Systeem updates and basis configuratie pi installer

Als je een en ander vanaf je computer doet, dan kan je de teksten kopieëren en plakken.
Als je bij de installatie van het OS de overscan niet hebt uitgezet, dan moet je dat alsnog doen. Geef dan eerst het volgende in:

sudo raspi-config nonint do_overscan 1

Geef vervolgens in het terminal scherm het volgende in.

sudo apt update && sudo apt upgrade -y

Deze actie duurt even, want er worden nu updates opgehaald. Als het klaar is open je het configuratie programma van je Pi.

sudo raspi-config

Maak de volgende aanpassingen:

  • Bij 1 System Options: S6 Network at Boot – Zet naar “Yes”.
  • Bij 2 Display Options – kies D4 Screen Blanking en disable het.
  • Bij 5 Localisation Options: L1 Locale. Kies je country code. Als er meerdere zijn kies de UTF-8 versie. Selecteer de default locale.

Ga Terug en beëindig (Finish) het programma. Reboot het systeem. Na ongeveer twee minuten is het systeem gestart, maak dan opnieuw verbinding met je Pi met:

ssh pi@your-ip-address

Installeren van PictureFrame software

Nadat je de basis software hebt geïnstalleerd op je Pi is er nog één ding dat je moet doen en dat is de PictureFrame software installeren. Mijn favoriet, zoals hier boven beschreven is “Pi3D PictureFrame”. Deze software is in maart 2021 helemaal herschreven en werkt op de Pi 2,3 en 4. De installatie voor de Pi 4 is anders dan voor de Pi 2 en 3. Deze worden hieronder apart beschreven.

Pi 4

Start weer de Terminal op en kopieer en plak het volgende:

sudo raspi-config nonint do_boot_behaviour B2 && sudo raspi-config nonint do_memory_split 256 && sudo raspi-config

In de raspi-config module, ga naar 6 Advanced Options > A2 GL Driver > Kies G2 GL Fake KMS.

Verlaat de configuratie settings en geef het volgende in:

sudo pip3 install picframe
sudo reboot
picframe -i .

Vergeet vooral niet de punt achter de -i te plaatsen!
Je krijgt nu drie vragen voor de basisconfiguratie. Wil je niets wijzigen geef dan telkens enter. Je kan later nog altijd de instellingen wijzigen. Op je scherm zie je nu:

This will configure /home/pi/picframe_data/config/configuration.yaml
To keep default, just hit enter
Enter picture directory [~/Pictures]:
Enter picture directory [~/DeletedPictures]:
Enter locale [en_GB.UTF-8]:
created /home/pi/picframe_data

Je kan nu het programma testen. Zorg wel dat je nu een monitor hebt aangesloten op je Pi. Het commando moet je op de Pi zelf uitvoeren! Doe je dat niet dan krijg je een foutmelding dat er geen monitor is aangesloten!

sudo xinit /usr/bin/python3 /home/pi/picframe_data/run_start.py /home/pi/picframe_data/config/configuration.yaml

photoframe Als er nog geen afbeeldingen staan in~/Pictures, dan wordt de "no image found" afbeelding getoond. Maar het is een goed teken, dat je de afbeelding ziet! Met "CTRL+C" kan je de slide show stoppen.

 
Pi 2 & 3

Start weer de Terminal op en kopieer en plak het volgende:

sudo raspi-config nonint do_boot_behaviour B4 && sudo raspi-config nonint do_memory_split 128 && sudo raspi-config

In de raspi-config module, ga naar 6 Advanced Options > A2 GL Driver > Kies G1 (Legacy).
Verlaat de configuratie instellingen en geef het volgende in:

pip3 install picframe
sudo reboot
picframe -i .

Vergeet vooral niet de punt achter de -i te plaatsen!
Je krijgt nu drie vragen voor de basisconfiguratie. Wil je niets wijzigen geef dan telkens enter. Je kan later nog altijd de settings wijzigen. Op je scherm zie je nu:

This will configure /home/pi/picframe_data/config/configuration.yaml
To keep default, just hit enter
Enter picture directory [~/Pictures]:
Enter picture directory [~/DeletedPictures]:
Enter locale [en_GB.UTF-8]:
created /home/pi/picframe_data

Je kan nu het programma testen. Zorg wel dat je nu een monitor hebt aangesloten op je Pi. Het commando moet je op de Pi zelf uitvoeren! Doe je dat niet dan krijg je een foutmelding dat er geen monitor is aangesloten!

picframe ~/picframe_data/config/configuration.yaml

noimages

Als er nog geen afbeeldingen staan in~/Pictures, dan wordt de "no image found" afbeelding getoond. Maar het is een goed teken, dat je de afbeelding ziet! Met "CTRL+C" kan je de slide show stoppen.


Configuratie Instellingen

Voor we verder gaan zet eerst wat afbeeldingen in je /Pictures map op je Pi. PictureFrame kan de volgende bestandstype lezen : PG, JPEG, PNG, HEIC en HEIF, dus plaats alleen bestanden met die extensie in de map /Pictures.
Bij installatie van PicFrame zijn er een aantal mappen aangemaakt. De hoofdmap heet "picframe_data”. Hierin staan weer drie andere mappen en een bestand. Ga nu naar de map config. Hierin staat het bestand "configuration.yaml". Dat bestand wordt gelezen als je het programma start. Aan de hand van de instellingen in het bestand weet PicFrame wat hij moet doen. Het bestand is logisch opgebouwd en bevat 4 secties, namelijk viewer, model, MQTT en HTTP. Met de standaard instellingen werkt het programma al goed, maar misschien wil je de tijd aanpassen dat een foto getoond wordt. Hiervoor moet je het configuratie bestand aanpassen. Open het bestand in een editor, bijvoorbeeld nano, de standaard editor op je Pi.

sudo nano /home/pi/picframe_data/config/configuration.yaml

Shuffle mode (model)

Met shuffle wordt aangegeven dat de afbeelding willekeurige keurige volgorde worden getoond bij het herladen van de bestanden. De standaardwaarde is True. Wil je dat niet, dan vervang True door False.

shuffle:  True  # default=True, shuffle on reloading image files

Tijd tussen afbeeldingen (model)

Met time_delay wordt aangegeven wat de tijd, in seconden, is tussen twee afbeeldingen. De standaardwaarde is 200.0 sec. Dit is iets meer dan 3 minuten (200/60). Wil je de afbeeldingen langer of korter tonen, pas dan de tijd aan

time_delay:  200.0  # default=200.0, time between consecutive slide starts

Tijd tussen overgang (model)

Met fade_time wordt aangegeven wat de tijd, in seconden, is tussen de overgang (overlap) tussen twee afbeeldingen. De standaardwaarde is 10.0 sec.

fade_time:  10.0  # default=10.0, change time during which slides overlap

Aantal keer voor husselen (model)

Met reshuffle_num wordt aangegeven na hoeveel keer afspelen van de diashow afbeeldingen opnieuw gehusseld mooeten worden. Staat de waarde op 1 dan wordt elke keer na het beeïndigen van de diashow de afbeelding opnieuwe gehusseld. Staat de waarde op 5, dan wordt deze pas na 5 keer afspelen gehusseld. De standaardwaarde is 1.

reshuffle_num:  1  # default=1, times through before reshuffling

Past op scherm (viewer)

Met fit wordt aangegeven of de afbeelding moet passen op het scherm waarop de diashow wordt afgespeeld. Staat de waarde op True, dan wordt de hele afbeelding getoond, wat kan leiden tot zwarte balken. Staat de waarde op False, dan wordt de afbeelding uigerekt. De standaardwaarde is False. Opmerking: Indien mat_images op True staat, zie je geen verschil.

fit:  False  # default=False, True => scale image so all visible and leave 'gaps'. False => crop image so no 'gaps'

Toon tekst (viewer)

Met show_text kan je metadata van de afbeelding op je scherm zien. Wil je geen tekst zien zet dan niets tussen "". De standaard is alle tekst tonen.

show_text:  "title caption name date folder location"   # default="title caption name date folder location", show text, include combination of words: title, caption name, date, location, folder

Gebruik "matting" (viewer)

Met mat_images kan je aangeven dat er een gekleurde rand om de afbeelding komt, als deze niet op je scherm passen. Het heeft iets weg van een passe partout. De kleur wordt bepaald aan de hand van de kleuren van je afbeelding. De standaard is True. Er komt bij de standaard instelling telkens een verschillende rand om de afbeelding met mat_type kan je een keuze maken welke je wilt gebruiken.

mat_images:  0.01   # default=0.01, True, automatically mat all images. False, don't automatically mat any images. Real value, auto-mat all images with aspect ratio difference > than value

mat_type:  null   # default=null, A string containing the mat types to choose from when matting images. It can consist of any or # all of 'float float_polaroid float_color_wrap single_bevel double_bevel double_flat' (null or "" will use all mat types)

Toon nieuwste afbeeldingen eerst (viewer)

Met recent_n kan je aangeven dat de nieuwste afbeeldingen eerst moeten worden getoond. Voeg je afbeeldingen toe en de afspeellijst wordt gehusseld, dan kan je met deze instelling aangeven welke foto's eerst worden getoond. Hierbij wordt gekeken naar de datum waarde in de EXIF-gegevens. Staat de recent_n op 10 dan worden de afbeeldingen die nieuwer zijn dan de huidige datum -10 dagen het eerst afgespeeld, daarna volgt de rest. Er wordt gekeken naar de Exif-datum en niet naar de datum van het bestand!

recent_n:  7   # default=7 (days), when shuffling file change date more recent than this number of days play before the rest

Er zijn nog meer instellingen aan te passen, zoals portrait_pairs. Als deze waarde op True staan dan worden, indien ze er zijn, twee portret afbeeldingen naast elkaar getoond. De standaardwaarde is False.


Fotolijstje
moonen-donners

Bovenstaande foto toont mijn overgrootouders rond 1900. Met portrait_pairs op True worden ze naast elkaar getoond. Let ook op de gekleurde achtergrond om de foto, deze komt overeen met de bedekking van mijn muur.


Tot zo ver

Met de hierboven beschreven handelingen kan je een prachtige diashow afdraaien op een groter scherm dan een 10" klant-en-klaar gekocht fotolijstje. Met nog wat extra software kan je het fotolijstje met bijvoorbeeld een smartphone, tablet of computer bedienen. Dat laatste is iets onhandiger, maar moet ook gaan. Zelf beschik ik over Apple spul, dus ik zal me beperkt houden tot een beschrijving hiervan. Je kan zelfs je fotolijstje bedienen met de HomeAssistant app, maar daarvoor moet je op een andere Raspberry Pi eerst HomeAssistant installeren. Bijeffect hierbij is, dat je dan, op een Apple device, je fotolijstje ook via de woning app kan bedienen, maar ook lampen en schakelaars, die niet HomeKit compatibel zijn ;). Hieronder eerst hoe je met wat extra software voor op je Pi, waar je de software voor het fotolijstje op hebt draaien. met bijvoorbeeld een smartphone opdrachten kan versturen.


Mosquitto

Wil je het fotolijstje van afstand bedienen, bijvoorbeeld volgende foto of de diashow pauzeren dan moet je op de Pi waarop picframe is geïnstalleerd Mosquitto installeren. Mosquitto leest commando's die naar het programma PicFrame worden gestuurd en als het correcte commando's zijn, dan worden ze uitgevoerd. Om Mosquitto te installeren start je Terminal weer op en maak je connectie met je PI, via het commando:

ssh pi@your-ip-address

Vervolgens voer je de onderstaande opdracht uit om je OS up-to-date te krijgen:

sudo apt update && sudo apt upgrade -y

Daarna kunnen wij Mosquitto installeren (server en client) :

sudo apt install -y mosquitto mosquitto-clients

Wil je controleren of de Mosquitto server werkt, geef dan het onderstaande commando in.

sudo service mosquitto status

mqtt

Wil je controleren of het werkt? Geef dan het volgende commando in.

mosquitto_sub -h localhost -v -t frame_channel

Open nu een tweede terminal scherm naar je PI en stuur daar de volgende melding naar jezelf.

mosquitto_pub -h localhost -t frame_channel -m "Hello Digital Picture Frame"

Als alles goed werkt dan zie je op het eerste terminal scherm de volgende tekst: "frame_channel Hello Digital Picture Frame". Als je de melding ziet dan kan je verder gaan om je fotolijstje met de Mosquitto server te verbinden.

Mosquitto & PictureFrame

Om je fotolijstje te laten luisteren naar een aantal MQTT-opdrachten, moet je de software van het fotolijstje vertellen, dat hij dat moet doen. Hiervoor moet je het configuratie bestand configuration.yaml aanpassen in wel in de sectie mqtt.

sudo nano /home/pi/picframe_data/config/configuration.yaml

Zorg ervoor dat de instellingen overeenkomen, zoals hieronder is aangegeven. Gebruik je een en ander niet van buiten dan is er geen gebruikersnaam, wachtwoord en tls nodig. Wil je toch gebruik maken van een gebruikersnaam en wachtwoord? Kijk dan even op deze site!

mqtt:
 use_mqtt: True
 server: "localhost"
 port: 1883
 login: ""
 password: ""
 tls: ""
 device_id: "picframe"


MQTT commando's

In onderstaande tabel staan de commando's die je via MQTT kan versturen. De eerste zijn de schakelaars of knoppen, daaronder de commando's met een waarde. We gaan ervan uit dat je in het configuratie bestand configuration.yaml voor device_id: "picframe" hebt gekozen.

Schakelaars

  1. Scherm aan/uit: homeassistant/switch/picframe_display/set, ON,OFF
  2. Klok uit/aan: homeassistant/switch/picframe_clock/set, ON,OFF
  3. Pauzeer diashow on/off: homeassistant/switch/picframe_paused/set, ON,OFF
  4. Husselen aan/uit: homeassistant/switch/picframe_shuffle/set, ON,OFF
  5. Vorige: homeassistant/switch/picframe_back/set, ON
  6. Volgende: homeassistant/switch/picframe_next/set, ON
  7. Tekst naam aan/uit: homeassistant/switch/picframe_name_toggle/set, ON,OFF
  8. Tekst datum aan/uit: homeassistant/switch/picframe_date_toggle/set, ON,OFF
  9. Tekst locatie aan/uit: homeassistant/switch/picframe_location_toggle/set, ON,OFF
  10. Tekst map (folder) aan/uit: homeassistant/switch/picframe_directory_toggle/set, ON,OFF
  11. Tekst titel aan/uit: homeassistant/switch/picframe_title_toggle/set, ON,OFF
  12. Beschrijving aan/uit: homeassistant/switch/picframe_caption_toggle/set, ON,OFF
  13. Alle tekst uit: homeassistant/switch/picframe_text_off/set, ON # ja, een beetje verwarrend!
  14. Ververs tekst: homeassistant/switch/picframe_text_refresh/set, ON
  15. Verwijder afbeelding: homeassistant/switch/picframe_delete/set, ON

Waarden: (values:)

  1. Map met bestanden: picframe/directory, Tekst overeenkomstig met de naam van een map (folder)
  2. Datum vanaf (selectie): picframe/date_from, Tekst YYYY/MM/DD of een getal dat de unix tijdnotatie bevat of een lege string om de constraint te verwijderen
  3. Datum tot (selectie): picframe/date_to, Tekst YYYY/MM/DD of een getal als hierboven
  4. Overvloei tijd: picframe/fade_time, Getal
  5. Tijd tussen afbeeldingen: picframe/time_delay, Getal
  6. Helderheid: picframe/brightness, Float (niet geheel getal) 0.0 to 1.0
  7. Locatie filter: picframe/location_filter, Tekst overeekomend met een deel in de locatie beschrijving
  8. Trefwoorden filter: picframe/tags_filter, Tekst overeenkomende matching trefwoorden
  9. Stop: picframe/stop, geen bericht - stopt de diashows
  10. Matte achtegrond: picframe/matting_images, Float (niet geheel getal) 0.0 to 1.0, 0 if matting is activated (true) and 1 if it is deactivated (false). Any value in between is used as value for mat_image_to

Apple (opdrachten)

We zijn nu zover dat we opdrachten naar ons fotolijstje kunnen sturen. Het eenvoudigste gaat dat via een SSH-script. Deze kan je binnen Opdrachten (Shortcuts) op een iPhone, iPad of Mac definiëren. Je moet dan wel bij opdrachten, via instellingen, het uitvoeren van SSH-scripts toestaan. Wil je bijvoorbeeld de monitor uitzetten, dan moet je het volgende commando naar je fotolijstje sturen. Dit commando gaat trouwens direct naar je Pi en niet naar de Mosquitto server.

sudo vcgencmd display_power 0

De monitor wordt nu uitgeschakeld. Wil je hem weer aanzetten, dan stuur je het onderstaande commando.

sudo vcgencmd display_power 1

De monitor gaat nu weer aan! Wil je de volgende afbeelding hebben, dan stuur je dit naar het fololijstje en in dit geval via Mosquitto.

mosquitto_pub -h localhost -t homeassistant/switch/picframe_next/set -m "ON"

Als het fotolijstje het commando heeft ontvangen, dan verschijnt de volgende afbeelding. In bovenstaand commando zie je de tekst homeassistant staan. Dit heeft niets met de applicatie homeassistant te maken, maar is een kleine onoplettendheid van de maker van de software. Want zoals je hieronder ziet, om naar een andere map te gaan moet je picframe gebruiken, wat ook logischer is, want het is de naam van het programma dat wij gebruiken. Maar goed een schoonheidsfoutje mag.

mosquitto_pub -h localhost -t picframe/directory -m "Model"

mqtt

Binnen opdrachten heb ik nu de volgende knoppen gedefinieerd. Je zal je afvragen, hoe doe ik dat nu? Dat zal ik je nu vertellen. Open de opdrachten app en druk op het plusje om een opdracht toe te voegen. Klik vervolgens op voeg taak toe. Bovenin verschijnt nu een zoekvenster, geef daar ssh in. Je krijgt nu één regel met de tekst Voer script uit via SSH. Klik op die regel. Je krijgt dan onderstaand scherm.

Vul bij 1 nu het script in dat je wilt uitvoeren, bijvoorbeeld:

mosquitto_pub -h localhost -t homeassistant/switch/picframe_next/set -m "ON"

mqtt

Bij 2 moet je het IP-nummer van je PI ingeven. Bij mij is dat 192.168.178.45 . Het poortnummer laat je op 22 staan. Bij 3 geef je de gebruikersnaam op, die je hebt gekozen bij het installeren van de Pi, meestal is dat pi. Authenticatie laat je op wachtwoord staan en bij 4 geef je het wachtwoord in dat je hebt gekozen. Geef de opdracht ook nog een naam. Doe dat bovenin bij de grijze tekst "Voer script uit via...". Klik op gereed en vervolgens op het kruisje rechtsboven. De opdracht is nu toegevoegd.

mqttKlik je nu op die tegel dan wordt de opdracht uitgevoerd en zie je, in dit geval, de volgende afbeelding verschijnen! Verder kan je ook nog de kleur en het icoontje van de tegel aanpassen, zodat je ook kan zien wat hij doet.

mqtt
 

Android

Je kan ook je fotolijstje met een Android app bedienen. Zelf heb ik er geen ervaring mee, maar Wolfgang heeft op deze pagina het een en ander beschreven. Hij gebruikt hiervoor de app MQTT Dash. Alvorens je de App kan gebruiken moet je Mosquitto geïnstalleerd hebben en de aanpassingen in de configuration.yaml hebben aangebracht, zoals hierboven beschreven.

ssh

SSH commando's

In onderstaande tabel staan de commando's die je via SSH kan versturen. De eerste zijn de schakelaars of knoppen, daaronder de commando' met een waarde. We gaan ervan uit dat je in het configuratie bestand configuration.yaml voor device_id: "picframe" hebt gekozen.

Schakelaars

  1. Scherm aan/uit: sudo vcgencmd display_power , 1 of 0 (Aan, Uit)
  2. Klok aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_clock/set -m , "ON" of "OFF"
  3. Pauzeer diashow aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_paused/set -m , "ON" of "OFF"
  4. Husselen aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_shuffle/set -m , "ON" of "OFF"
  5. Vorige: mosquitto_pub -h localhost -t homeassistant/switch/picframe_back/set -m , "ON"
  6. Volgende: mosquitto_pub -h localhost -t homeassistant/switch/picframe_next/set -m, "ON"
  7. Tekst naam aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_name_toggle/set -m , "ON" of "OFF"
  8. Tekst datum aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_date_toggle/set -m , "ON" of "OFF"
  9. Tekst locatie aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_location_toggle/set -m , "ON" of "OFF"
  10. Tekst map (folder) aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_directory_toggle/set -m, "ON" of "OFF"
  11. Tekst titel aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_title_toggle/set -m , "ON" of "OFF"
  12. Beschrijving aan/uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_caption_toggle/set -m , "ON"< of "OFF"
  13. Alle tekst uit: mosquitto_pub -h localhost -t homeassistant/switch/picframe_text_off/set -m , "ON" # ja, een beetje verwarrend!
  14. Ververs tekst: mosquitto_pub -h localhost -t homeassistant/switch/picframe_text_refresh/set -m , "ON"/li>
  15. Verwijder afbeelding: mosquitto_pub -h localhost -t homeassistant/switch/picframe_delete/set -m , "ON"

Waarden: (values:)

  1. Map met bestanden: mosquitto_pub -h localhost -t picframe/directory -m , Tekst overeenkomstig met de naam van een map (folder) tussen " "
  2. Datum vanaf (selectie): mosquitto_pub -h localhost -t picframe/date_from -m , Tekst YYYY/MM/DD (tussen " ") of een getal dat de unix tijdnotatie bevat of een lege string om de constraint te verwijderen
  3. Datum tot (selectie): mosquitto_pub -h localhost -t picframe/date_to -m , Tekst YYYY/MM/DD (tussen " ") of een getal als hierboven
  4. Overvloei tijd: mosquitto_pub -h localhost -t picframe/fade_time -m , Getal in seconden
 
  1. Tijd tussen afbeeldingen: mosquitto_pub -h localhost -t picframe/time_delay -m , Getal in seconden
  2. Helderheid: mosquitto_pub -h localhost -t picframe/brightness -m , Float (niet geheel getal) 0.0 to 1.0
  3. Locatie filter: mosquitto_pub -h localhost -t picframe/location_filter -m , Tekst overeekomend met een deel in de locatie beschrijving (tussen " ")
  4. Trefwoorden filter: mosquitto_pub -h localhost -t picframe/tags_filter -m , Tekst overeenkomende matching trefwoorden (tussen " ")
  5. Stop: mosquitto_pub -h localhost -t picframe/stop -m " ", leeg tekst veld - stopt de diashow
  6. Matte achtegrond: mosquitto_pub -h localhost -t picframe/matting_images -m , Float (niet geheel getal) 0.0 to 1.0, 0 if matting is activated (true) and 1 if it is deactivated (false). Any value in between is used as value for mat_image_to

Voorbeelden

  1. Vorige afbeelding: mosquitto_pub -h localhost -t homeassistant/switch/picframe_back/set -m "ON"
  2. Tekst naam aan : mosquitto_pub -h localhost -t homeassistant/switch/picframe_name_toggle/set -m "ON"
  3. Tekst titel uit : mosquitto_pub -h localhost -t homeassistant/switch/picframe_title_toggle/set -m "OFF"
  4. Tijd tussen afbeeldingen : (1800sec of 30 min.) mosquitto_pub -h localhost -t picframe/time_delay -m 1800
  5. Map met bestanden: (mapnaam : Natuur) mosquitto_pub -h localhost -t picframe/directory -m "Natuur"

Hieronder zie je een ssh-script dat de tijd tussen twee afbeeldingen op 30 minuten (1800 seconden) zet.

ssh

Tips & Tricks
Mappen

Op je Pi, kan je in de map ~/Pictures weer mappen maken waar in je ook afbeeldingen plaatst. Stel je hebt onder de hoofdmap een map /Architectuur, /Bloemen en /Mensen. Vervolgens heb je in ~/Pictures en de onderliggende sub mappen afbeeldingen staan, dan worden de afbeeldingen uit alle mappen getoond. Heb je nu aangegeven dat je alleen afbeeldingen uit de map /Mensen wilt hebben, dan worden alleen de afbeeldingen uit die map getoond en eventuele onderliggende mappen. Wil je als je pictureframe opstart direct beginnen met afbeeldingen uit de map /Mensen, dan moet je het configuratie bestand aanpassen en bij pic_dir: "~/Pictures/Mensen" invullen. Je kan natuurlijk ook via een MQTT commando de map wijzigen.

Afbeeldingen vanaf het netwerk

Als je de Pi hebt gekoppeld aan je WiFi netwerk en je wilt afbeeldingen van je NAS tonen zonder dat je ze telkens overzet naar je Pi, dan is dat ook mogelijk. Ik heb dit jaren aan het draaien gehad, maar opeens gaf het problemen. Je moet in ieder geval geregeld hebben dat de schijf op map die je wilt delen op je NAS toegankelijk is vanaf een andere computer. Vervolgens heb ik op mijn Pi het bestand fstab aangepast. Dat doe je met het commando sudo nano /etc/fstab. Bij mij heb ik de volgende regel onderaan toegevoegd:

//192.168.178.35/Public/PhotoFrame /home/pi/Pictures cifs vers=1.0,nofail 0 0

Hierbij verwijst het stuk //192.168.178.35/Public/PhotoFrame naar de plaats op mijn netwerkschijf waarop de afbeeldingen staan die ik wil delen. Verder verwijst /home/pi/Pictures naar de plek waar ik de afbeeldingen op mij Pi kan zien. Het laatste deel heeft te maken met de verbinding opties. Als ik vervolgens op mij Pi het commando: sudo mount -a uitvoer dan wordt er eventueel gevraagd naar een gebruikersnaam/wachtwoord. Als dat correct is, dan zie je in de map /home/pi/Pictures de bestanden die ook op //192.168.178.35/Public/PhotoFrame staan. Bij mij heeft dit altijd goed gewerkt. Alleen de laatste keren zag PictureFrame helaas geen bestanden. Ik heb nu tijdelijk even de bestanden op de Pi gezet.

contact
Fred Baltus
contact@fredbaltus.nl
connect

Last updated: 2 december 2021
Copyright 1995 - 2022
Baltus Media