Pass2PHP

Eddiever
Posts: 57
Joined: Thursday 27 April 2017 20:32
Target OS: Raspberry Pi
Domoticz version: V3.8153
Location: The Netherlands (Hoogeveen)
Contact:

Re: Pass2PHP

Post by Eddiever » Thursday 15 June 2017 21:22

I am giving this pass2php a try. Would love to get faster action. First things first. To install php-acpu as mentioned above (sudo apt-get install php-apcu I got the error message: can't find package php-acpu. Do I need to install php5-acpu insted?
RPi 2B with Domoticz and cam module RPi 3 with cam module
1 rftxtrx433E module 1 solar-edge SE-3500
1 Sonoff Touch 3 Sonoff wifi swithes 6 kaku modules

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Thursday 15 June 2017 21:34

I'm not sure. I have the repository for php7 and then it's just called php-apcu.
I guess it's the same but keep in mind that php7 is a lot faster.

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Saturday 17 June 2017 10:04

Updated my sw(itch) function so it supports arrays:

Code: Select all

function sw($name,$action='Toggle',$comment=''){
    if(is_array($name)){
        foreach($name as $i){
            if($i=='media')sw(array('tv','denon','tvled','kristal'),$action);
            elseif($i=='lichtenbeneden')sw(array('pirgarage','pirkeuken','pirliving','pirinkom','eettafel','zithoek','tvled','kristal','bureel','garage','keuken','werkblad','wasbook','kookplaat','inkom','zolderg'),$action);
            elseif($i=='lichtenboven')sw(array('pirhall','lichtbadkamer1','lichtbadkamer2','kamer','tobi','alex','hall','zolder'),$action);
            elseif($i=='slapen')sw(array('pirhall','hall','lichtenbeneden','poortrf','dampkap','GroheRed'),$action);
            elseif($i=='weg')sw(array('slapen','lichtenbeneden','lichtenboven'),$action);
            else{if(apcu_fetch('s'.$i)!=$action)sw($i,$action);}
        }
    }else{
        $msg = 'SWITCH '.$name.' => '.$action;
        if(!empty($comment)) $msg.=' => '.$comment;
        lg($msg);
        if(apcu_exists('i'.$name))file_get_contents('http://192.168.2.2:8080/json.htm?type=command&param=switchlight&idx='.apcu_fetch('i'.$name).'&switchcmd='.$action);
        else{apcu_store('s'.$name,$action);apcu_store('t'.$name,time);}
        usleep(50000);
    }
} 
usage:

Code: Select all

sw('light','Off');//switches a single light off
sw(array('weg'),'Off');//switches all lights defined in group 'weg' off (only if they are not off)
sw(array('light','weg'),'Off');//switches of the single 'light' and the group 'weg'  
Very handy for repeated stuf :)

ropske
Posts: 225
Joined: Tuesday 12 August 2014 5:37
Target OS: Raspberry Pi
Domoticz version: V3_8394
Location: Rumbeke,Belgium
Contact:

Re: Pass2PHP

Post by ropske » Thursday 22 June 2017 22:08

Hi,
i upgraded my system a while ago to a pi3
now i want to log my data again to mysql stored on my nas server, so i want to install again mysqli
but i'm getting the error at the end below, some knows why?

[email protected]:~ $ sudo apt-get install php5-mysqlnd
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd
De statusinformatie wordt gelezen... Klaar
De volgende extra pakketten zullen geïnstalleerd worden:
libapache2-mod-php5 php5-cli php5-common php5-curl php5-readline
Voorgestelde pakketten:
php-pear
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
php5-mysqlnd
De volgende pakketten zullen opgewaardeerd worden:
libapache2-mod-php5 php5-cli php5-common php5-curl php5-readline
5 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 70 niet opgewaardeerd.
Er moeten 0 B/4659 kB aan archieven opgehaald worden.
Na deze bewerking zal er 413 kB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] j
Bezig met het inlezen van changelogs... Klaar
dpkg: onherstelbare fatale fout; er wordt gestopt:
bestand met de lijst bestanden van pakket 'dpkg' heeft geen afsluitend regeleinde
E: Sub-process /usr/bin/dpkg returned an error code (2)

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Thursday 22 June 2017 22:30

Are you sure it's php5-mysqlnd you need? Isn't it just php5-mysql?
And why not go for php7.0?

ropske
Posts: 225
Joined: Tuesday 12 August 2014 5:37
Target OS: Raspberry Pi
Domoticz version: V3_8394
Location: Rumbeke,Belgium
Contact:

Re: Pass2PHP

Post by ropske » Thursday 22 June 2017 22:34

you know the command for php7 ? :p

ropske
Posts: 225
Joined: Tuesday 12 August 2014 5:37
Target OS: Raspberry Pi
Domoticz version: V3_8394
Location: Rumbeke,Belgium
Contact:

Re: Pass2PHP

Post by ropske » Thursday 22 June 2017 22:51

i just tried with this URL https://www.stewright.me/2016/03/turn-r ... eb-server/

but again the same dpkg error:

Bezig met het inlezen van changelogs... Klaar
Extraheren van sjablonen uit pakketten: 100%
Voorconfigureren van pakketten ...
dpkg: onherstelbare fatale fout; er wordt gestopt:
bestand met de lijst bestanden van pakket 'dpkg' heeft geen afsluitend regeleinde
E: Sub-process /usr/bin/dpkg returned an error code (2)
[email protected]:~ $

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Friday 23 June 2017 5:34

There's something wrong with your dpkg.
Translate the error and google...

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Friday 23 June 2017 5:51

Oh, I see you have another topic for that in http://www.domoticz.com/forum/viewtopic ... 28&t=18063

About pass2php, did I share this page already?

secure/cache.php:

Code: Select all

<?php
if(isset($_REQUEST['fetch']))echo apcu_fetch($_REQUEST['fetch']);
elseif(isset($_REQUEST['store'])&&isset($_REQUEST['value']))apcu_store($_REQUEST['store'],$_REQUEST['value']); 
With that file you can easily use the apcu cache from another system.
For example, check if the nas is on:

Code: Select all

#!/bin/bash
NAS=$(curl -s --connect-timeout 2 --max-time 5 'http://192.168.2.2/secure/cache.php?fetch=nas')
if [[ $NAS == 'On' ]];
then
	#do something
fi
Or set a variable:

Code: Select all

#!/bin/bash
curl -s --connect-timeout 2 --max-time 5 'http://192.168.2.2/secure/cache.php?store=nas&value=On

DarkAllMan
Posts: 35
Joined: Friday 23 December 2016 10:41
Target OS: Linux
Domoticz version:
Contact:

Re: Pass2PHP

Post by DarkAllMan » Tuesday 04 July 2017 11:13

Hi Egregius,

I have a problem that some of the PHP files are called multiple times at the same time.
For instance, when I change the status of a bulb, and I write to log, I get multiple entries at the same time.
Can you help me identify the issue here?

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Tuesday 04 July 2017 11:30

I'm pretty sure that if you would add a 'print' line in the lua script that you'll see that the lua script is called multiple times.
Depending on the code in your script it shouldn't be a big problem.
You could try to catch the issue in php with a timestamp in cache, something like:

Code: Select all

if(apcu_fetch('time_yourdevicename')<time-4){
    apcu_store('time_yourdevicename',time);
    //your code here
}
 
That would make the code only executed if it's more than 4 seconds ago. That would only be true if the second call of that device is at least 20 à 50 msecs ago (time to call the script and store the timestamp).

Snowdude
Posts: 11
Joined: Saturday 24 December 2016 11:34
Target OS: Raspberry Pi
Domoticz version:
Contact:

Re: Pass2PHP

Post by Snowdude » Friday 07 July 2017 22:16

I have a script that reacts on a zwave light. I see in my logfiles that when I switch the lamp from domoticz the script get run twice, when I press the physical switch, my script runs once.

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Friday 07 July 2017 23:58

Script and lofiles please ;)

Snowdude
Posts: 11
Joined: Saturday 24 December 2016 11:34
Target OS: Raspberry Pi
Domoticz version:
Contact:

Re: Pass2PHP

Post by Snowdude » Monday 10 July 2017 14:36

Here are my scripts: https://github.com/richarddeweerd/domot ... master/php

Logfile on and off switching of the lap "Overloop" from domoticz:

Code: Select all

2017-07-10 14:34:51.638 User: Admin initiated a switch command (92/Overloop/On)
2017-07-10 14:34:51.638 OpenZWave: Domoticz has send a Switch command! NodeID: 11 (0x0b)
2017-07-10 14:34:51.658 (ZWave) Light/Switch (Overloop)
2017-07-10 14:34:51.831 Notification sent (http) => Success
2017-07-10 14:34:51.832 Overloop = On
2017-07-10 14:34:51.914 (ZWave) Light/Switch (Overloop)
2017-07-10 14:34:52.104 Notification sent (http) => Success
2017-07-10 14:34:52.105 Overloop = On
2017-07-10 14:34:54.207 (ZWave) Usage (Overloop_power)
2017-07-10 14:34:54.251 (ZWave) General/kWh (Overloop_kWh)
2017-07-10 14:34:57.768 User: Admin initiated a switch command (92/Overloop/Off)
2017-07-10 14:34:57.769 OpenZWave: Domoticz has send a Switch command! NodeID: 11 (0x0b)
2017-07-10 14:34:57.799 (ZWave) Usage (Overloop_power)
2017-07-10 14:34:57.833 (ZWave) General/kWh (Overloop_kWh)
2017-07-10 14:34:57.870 (ZWave) Light/Switch (Overloop)
2017-07-10 14:34:57.899 Overloop = Off
2017-07-10 14:34:58.057 (ZWave) Light/Switch (Overloop)
2017-07-10 14:34:58.085 Overloop = Off
2017-07-10 14:34:58.202 (ZWave) Usage (Overloop_power)
2017-07-10 14:34:58.219 (ZWave) General/kWh (Overloop_kWh)

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Monday 10 July 2017 19:05

There are two lines of your zwave hardware in the log, so it's the switch that probably sends its status after a command.
Either check your node parameters or groups or use the workaround from http://www.domoticz.com/forum/viewtopic ... 92#p140236

Trigun
Posts: 180
Joined: Wednesday 30 November 2016 12:58
Target OS: Raspberry Pi
Domoticz version: 3.5877
Contact:

Re: Pass2PHP

Post by Trigun » Thursday 10 August 2017 9:32

Hi egregius, is the script also working on the New version of domoticz?


Sent from my iPhone using Tapatalk

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Thursday 10 August 2017 11:32

Yes, I'm running Domoticz stable 3.8153 without any issue.

Trigun
Posts: 180
Joined: Wednesday 30 November 2016 12:58
Target OS: Raspberry Pi
Domoticz version: 3.5877
Contact:

Re: Pass2PHP

Post by Trigun » Thursday 10 August 2017 16:25

Great! Thnx


Sent from my iPhone using Tapatalk

simon_rb
Posts: 674
Joined: Wednesday 07 August 2013 19:09
Target OS: -
Domoticz version:
Location: UK
Contact:

Re: Pass2PHP

Post by simon_rb » Saturday 12 August 2017 14:55

I have read through this thread and there are various ways to set this up. On another topic, Egregius has recommended I use his pass2php and read through this and it looks excellent - really quick. Has anyone on here set this up from scratch recently? Wondered what the up to date method of setting this up..

User avatar
Egregius
Posts: 2416
Joined: Thursday 09 April 2015 12:19
Target OS: Raspberry Pi
Domoticz version: BetaRPi2
Location: Beitem, BE
Contact:

Re: Pass2PHP

Post by Egregius » Saturday 12 August 2017 17:35

Hi Simon,

The code at github should be pretty recent, will update it in a few minutes with my latest code and scripts.
The installation in the wiki should be a good starting point, not very detailed...
https://github.com/Egregius/LUA-Pass2PH ... stallation

Post Reply

Who is online

Users browsing this forum: commentator and 1 guest