2019

May

10

Av Rolf

Det är fler och fler som installerar olika lösningar för att göra sitt hem mer smart. Det behöver inte vara hem, det kan lika gärna vara på ditt företag. Om du var på ett av våra seminarier i Lund, jag tror det var i maj 2012, visade vi att FileMaker redan då kunde starta kaffebryggaren och te-kokaren! Nu ska jag tipsa om hur du kan skicka data, t.ex. temperatur eller regnmängd, till en FileMaker-databas från ditt smarta hem-system.

Du behöver förstås termometer eller regnmätare som du läser av med någon form av hårdvara. Många använder, precis som jag, en Raspberry Pi och pluggar in en hårdvara i dess USB-uttag för att ta emot och skicka radiosignaler. Det kan t.ex. vara Tellstick, Z-wave, IKEA Trådfri eller annan hårdvara. På den lilla Raspberry-datorn installeras en programvara, populärast just nu är förmodligen Home Assistant, som ställs in och sedan glöms/göms i en garderob där den släcker/tänder lampor, styr rullgardiner, hämtar temperaturangivelser eller vad du önskar. Home Assistant har många funktioner men ett lite knöligt programmeringsspråk, i alla fall om man är van vid FileMaker 🙂

Det finns många steg-för-steg-beskrivningar på internet hur du kommer igång med Raspberry Pi och Home Assistant. Jag använder själv en sådan uppsättning med bl.a. ett antal termometrar, temperatur från dessa vill jag spara i en FileMaker-databas som finns på en av våra servrar. Vår server är tillgänglig/åtkomlig från internet och min Raspberry PI (som står i en garderob hemma) kommer att göra ett anrop med HTTP POST till FileMaker Server. Vår FileMaker Server är version 17 men det kan lika gärna vara en tidigare version, dock minst version 6 🙂

I FileMaker Server 17 är Custom Web Publishing inte påslaget från början. Det behöver slås på och det görs med både terminal-kommando och i FileMaker Servers admin-konsol. Har du en tidigare version av FileMaker Server är det påslaget om du har installerat Custom Web Publishing, du behöver bara kontrollera att det är igång i admin-konsollen.

Har du FileMaker Server 17 öppnar du ett terminal-fönster på server-datorn. Kontrollera först att XML är påslaget med följande kommando:

fmsadmin get cwpconfig

Du behöver logga in med kontot och lösenordet för admin-konsollen. Finns det en rad ”EnableXML = false” behöver du slå på det, skriv då följande kommando:

fmsadmin set cwpconfig enablexml=true

Logga in igen med kontot och lösenordet för admin-konsollen. Kontrollera sedan i admin-konsollen att Web Publishing Engine är påslagen, det gör du i 17 under fliken Anslutningar/Connectors.

I databasen som jag har placerat på vår server finns en tabell Temperaturer med fälten ”id”, ”Temperatur”, ”Plats” och ”Skapad”. Fälten är placerade på en layout med namnet ”Temperaturer”, Fältet ”id” är inställt med automatiskt löpnummer och ”Skapad” får tidsstämpel när posten skapades. Det behövs en behörighetsuppsättning med den utökade behörigheten ”fmxml”.

Behörighetsuppsättningen ska också ha rättighet att skapa poster i tabellen Temperaturer och fylla i fälten. Jag har kopplat ett konto/lösenord till behörighetsuppsättningen.

I Home Assistant på min Raspberry PI lägger jag till ett s.k. rest-kommando i konfigurations-filen som heter ”configurations.yaml”. Jag lägger till 3 rader i filen, tänk på att indragen på varje rad ska vara 0, 2 respektive 4 mellanslag (filformatet yaml är känsligt för just detta). Den långa url-en ska stå på en rad.

rest_command:
  push_temperatur:
    url: 'http://konto:lösen@server-adress/fmi/xml/fmresultset.xml?
         -db=databas&-lay=Temperaturer&Plats={{plats}}&Temperatur={{temp}}&-new'

{{plats}} och {{temp}} i url-en är 2 variabler som gör att samma kommando kan användas för att spara temperaturer från olika ställen. ”Server-adress” kan vara ett ip-nummer eller ett domän-namn, ”databas” är namnet på din databas, layouten som visar tabellen Temperaturer har samma namn, Plats och Temperatur är fält som finns på layouten och det avslutande ”-new” är kommandot för att skapa en ny post i tabellen.

I filen ”automations.yaml” lägger jag in så att anropet till temperatur-databasen görs 5 min efter varje heltimme.

alias: temperatur till FileMaker Kök
trigger:
- minutes: 5
  platform: time
  seconds: 0
condition: []
action:
  data_template:
    plats: Kök
    temp: '{{states.sensor.yr_temperature.state}}'
  service: rest_command.push_temperatur

I vårt affärssystem i FileMaker (förstås!) visar vi temperaturerna i vårt ”dashboard” och med diagram över tid. Det kan t.ex. se ut så här:

Bakgrundsfärgen ändras såklart efter yttertemperaturen med hjälp en en villkorligt utformning, från mörkblått (=kallt) till rött (=varmt) 🙂

Ett diagram kan se ut så här:

Skriv en kommentar

Din epost-adress stannar hos oss.