Styra raspberry GPIO pinnar

http://karpero.mine.nu/ha

Moderators: tom_rosenback, Daniel, Telldus

Post Reply
aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Styra raspberry GPIO pinnar

Post by aryan » Thu Jan 18, 2018 11:08 am

Hej,

Jag skulle vilja kunna styra några av Raspberry PI's GPIO anslutningar med HA.

Jag föreställer mig att man t ex kan göra genom att anropa ett eller flera python och/eller shellscripts men skulle gärna ha lite tips eller exempel på hur man (bäst) ska göra detta.

Mvh Aryan

Daniel
Posts: 315
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by Daniel » Thu Jan 18, 2018 11:08 am

aryan wrote:Jag skulle vilja kunna styra några av Raspberry PI's GPIO anslutningar med HA.

Jag föreställer mig att man t ex kan göra genom att anropa ett eller flera python och/eller shellscripts men skulle gärna ha lite tips eller exempel på hur man (bäst) ska göra detta.
Det beror nog lite på hur avancerat det behöver vara. Du kan ju testa med pluginet "custom command" som följer med HA. Det tillåter dig i princip att konfigurera ett kommando som exekveras när en enhet slås på och ett annat kommando när den slås på (och du kan även i kommandot stoppa in saker som t ex %name% och %status%). Alternativet om du behöver ha något mer flexibelt är nog att göra ett nytt plugin för ändamålet (vilket inte är speciellt svårt om man bara kan lite php).

/Daniel
Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by aryan » Thu Jan 18, 2018 11:08 am

Tack för dit svar. Har inte senaste version ännu men kopierade customcommand mappen från V3.3 och la in det i min systemplugins map och det verkar funka med V3.1.

Har jag förstått det rätt att jag kan skapa en device typ lampa med (system) custom command och sedan under Raw commands Off och ON fält ska/kan lägga in ett anrop till ett script som gör nått med GPIO pinnerna, t ex typ i ON fältet: python /var/www/HomeAutomation/rawcommands/gpio_##_on.py

Är %status% 1 när en enhet ska slåss på och 0 när den ska stängas av?

Så at man t ex in ON och Off fälten skulle kunna lägga ett anrop i den här stilen:
python /var/www/HomeAutomation/rawcommands/gpioscript.py gpio## %status%

Går det även att göra en en dimmer med custom command som skickar dimmernivån i %status% argumentet?

Mvh Aryan

Daniel
Posts: 315
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by Daniel » Thu Jan 18, 2018 11:08 am

Precis så. Jag har för mig att %status% är 0 eller 1 för en brytare och ett värde mellan 0 och 100 (eller kanske 0 och 255?) för dimrar. Du kan även använda %statustext%, vilken typ är "av" eller "på" (kanske måttligt meningsfullt i ditt fall) samt %deviceid% och %systemdeviceid%.

Tyvärr är det ju lite sisådär med dokumentationen. Jag tror det enklaste är att du till att börja med kör kommando i stil med "echo %name% %status% %whatever% > /tmp/testtext" och så tittar vad det resulterar i...

/Daniel
Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

hylsan
Posts: 158
Joined: Thu Jan 18, 2018 11:08 am
Location: skåne, sweden

Re: Styra raspberry GPIO pinnar

Post by hylsan » Thu Jan 18, 2018 11:08 am

Aryan: post gärna lite exempel på python-scriptet så man kan bli inspirerad :)
Får man fråga vad du tänkte använda det till?

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by aryan » Thu Jan 18, 2018 11:08 am

Tack för snabbt svar och tips. Det verkar som att mitt försök med att lägga pluginet "custom command" från HA V3.3 i min HA V3.1 systemplugins map inte funkar fullt ut i varje fall. Det gick bra att skapa en device och slå på och av det osv men Raw command scriptet verkar inte anropas.

I debug loggen skapas en rad med en text: "custom command: changeDeviceName method not implemented” för varje gång jag sparar detta "custom command” device.

Jag har nu i Raw commands fälten:
inget i Learn
Off: python /var/www/HomeAutomation/rawcommands/test.py %status%
On: python /var/www/HomeAutomation/rawcommands/test.py %status%

Skriptet test.py ska för närvarande inte göra något annat än att skriva en text fil i logs.

När det väl funkar att köra egna skript så här tänkte jag försöka styra några relän med RPi GPIO portar beroende på inom och utomhustemperatur och tiden. I mitt fall handlar det om att styrra en pelletspanna/kamin. Återkommer med scriptet när jag har lyckas med detta.

Mvh Aryan

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by aryan » Thu Jan 18, 2018 11:08 am

Glömde skriva att "echo %name% %status% %whatever% > /tmp/testtext” i rawcommands inte heller skapar nått i /tmp

Daniel
Posts: 315
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by Daniel » Thu Jan 18, 2018 11:08 am

Sorry. Missade att du skrev att du kör 3.1. Vi gjorde om ganska mycket i hur plugins funkar mellan 3.1 och 3.2 så det funkar definitivt inte. Å andra sidan är det i vilket fall en väldigt bra idé att uppgradera till senaste versionen.

/Daniel
Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by aryan » Thu Jan 18, 2018 11:08 am

Tack för dit svar, jag har uppgraderat till senaste versionen nu, hade lite problem först men det visade sig bero på samma sak som FrankForsberg hade här http://forum.telldus.com/viewtopic.php?f=27&t=6126 ; jag hade php5-mysql isf php5-mysqlnd . Ho mig blev det bara en vit sida så den eleganta kontrollen av installationsskriptet som bl a kollar om man har php5-mysqlnd kommer då inte att funka heller.

Nu funkar allting som det ska vad jag kan se men dessvärre får jag fortfarande inte min custom command device att köra några raw commands.

Ser inte nånting i loggarna som hjälper att hitta felet heller tyvärr.

/Aryan

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: Styra raspberry GPIO pinnar

Post by aryan » Thu Jan 18, 2018 11:08 am

Gjorde ett litet test till med en enkel test.php fil i HomeAutomation med följande innehåll:

Code: Select all

<?php 
$command = 'python rawcommands/test.py 55';
exec($command);
?>
test.py i rawcommands ser ut så här:

Code: Select all

#!/usr/bin/python
import sys
file = open("/var/www/HomeAutomation/logs/anewfile.txt", "w")
file.write("hello world in the new file\n")
file.write(sys.argv[1] + "\n") # get everything after the script name
file.write("and another line\n")
file.close()
När jag anropar test.php skapas som väntad anewfile.txt i logs med följande innehåll:

Code: Select all

hello world in the new file
55
and another line
Jag vet nu säkert att python scriptet funkar och kan anropas av en phpsida.

Om jag försöker med liknande kommando i raw commands fälten
On:

Code: Select all

python rawcommands/test.py 5
Off:

Code: Select all

python rawcommands/test.py 10
och slår på och av enheten skapas/ändras tyvärr inte anewfile.txt

/Aryan

Post Reply