Autor Thema: Text auf LCDd server ausgeben  (Gelesen 1250 mal)

Offline Klaus Heynen

  • New Member
  • *
  • Beiträge: 42
Antw:Text auf LCDd server ausgeben
« Antwort #15 am: 06 August 2021, 22:29:04 »
besser aber jetzt scheint es wie eine Endlosschleife zu sein.
Es wiederholt sich wieder und wieder

Offline Klaus Heynen

  • New Member
  • *
  • Beiträge: 42
Antw:Text auf LCDd server ausgeben
« Antwort #16 am: 06 August 2021, 22:42:46 »
ich versuche es morgen weiter.
Frage am Rande, ist es nicht besser doch anstelle der 99_myUtls.pm subroutine das Programm mit "perl fhem2lcdd.pl eins zwei" auf zurufen, denn dann läuft es im Hintergrund und blockiert nicht den Rest?

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 19508
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Text auf LCDd server ausgeben
« Antwort #17 am: 06 August 2021, 23:08:14 »
Ich wollte sagen: das sleep 5 blockiert für 5 sec. Ich wüsste nicht wozu das gut sein soll?
Aber ja, Du kannst auch ein Script aufrufen, ist für diese Anwendung vielleicht egal.
 
Das es als Schleife läuft ist mir nicht ergründlich? Du rufst einmal in der FHEM Kommandozeile
{ myLCDd("fuenf", "Sieben") }Und dann läuft es in Schleife?
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline Klaus Heynen

  • New Member
  • *
  • Beiträge: 42
Antw:Text auf LCDd server ausgeben
« Antwort #18 am: 10 August 2021, 15:32:56 »
nur zur info falls mal jemand das gleiche Problem hat.
Es ist der LCDd service zyklisch er scrollt durch alle client Fenster und die Perl Library mach die Fenster nicht mehr zu (da hab ich bestimmt was falsch gemacht).

Am Ende habe ich mich für Perl über die command line Variante entschieden:

define Pin23_ESCAPE_notify_1 notify Pin23_ESCAPE:Pinlevel:.low "sudo perl /home/pi/LCDd_Perl/fhem2lcdd.pl  Escape "Pin23 ist low""
fhem2lcdd.pl:
use IO::LCDproc;
use strict;


my $client = IO::LCDproc::Client->new(host => "localhost", name => "MYNAME", port => "13666");

my $screen = IO::LCDproc::Screen->new(name => "screen");


my $first = IO::LCDproc::Widget->new(
name => "first", align => "center", type => "string", xPos => 1, yPos => 1
);
my $second = IO::LCDproc::Widget->new(
name => "second", align => "center", type => "string", xPos => 1, yPos => 2
);


$client->add ( $screen );
$screen->add ($first, $second);
$client->connect() or die "Cannot Connect: $!";
$client->initialize();

$first->set( data => "$ARGV[0]");
$second->set( data => "$ARGV[1]" );

sleep 5;
exit 1;

 

 

decade-submarginal