Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. 433 Mhz "Baumarkt Steckdosen" schalten - Kleines Beispiel

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    433 Mhz "Baumarkt Steckdosen" schalten - Kleines Beispiel

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      torstenh last edited by

      Hallo zusammen,

      OK dann starte ich mal!

      Was wird benötigt?

      RPI

      MX-05V 433MHz RF Funkmodul / Sender + Empfänger

      Draht als Antenne

      IO Broker

      Als erstes richtet man sich den Sender (RPI) ein. Dazu gibt es im Netz eine gute Beschreibung:

      https://alexbloggt.com/funksteckdosen-r … -pi-teil1/

      Hier steht alles drin wie man den Pi erst einmal so hinbekommt, das er senden kann.

      Als nächsten Schritt eine php Seite anlegen

      ";
                                                      }
                                              }
                                              else
                                              {
                                              echo "Keine Ausgang gesetzt!" . "
      ";
                                              }
                                      }
                                      else
                                      {
                                      echo "Kein Hauscode gesetzt!" . "
      ";
                                      }
              if(isset($_GET['hauscode']) && isset($_GET['ausgang']) && isset($_GET['zustand']))
              {
              exec('sudo /root/raspberry-remote/./send ' . $hauscode . ' ' . $ausgang . ' ' . $zustand);
              echo '
      ' .  $hauscode . ' ' . $ausgang . ' ' . 'auf Zustand ' . $zustand .' geschaltet!';
              }
              else
              {
              echo "Funksteckdose nicht geschaltet!";
              }
      ?>
      

      …und im HTTP Root als automatik_set_funk.php speichern.

      Damit wäre der Pi fertig eingerichtet und kann als Sender arbeiten.

      Wenn aus einem Browser seiner Wahl folgenden Link aufruft:

      http://192.168.xxx.xxx/automatik_set_fu … &zustand=1

      Natürlich mit der IP Adresse des RPI! Wird die jeweilige Steckdose geschaltet.

      Entsprechend mit:

      http://192.168.xxx.xxx/automatik_set_fu … &zustand=0

      wieder aus geschaltet.

      Wenn das funktioniert, ist der Pi fertig!

      Kommen wir zu IO Broker:

      var pfad = 'javascript.1.funksteckdosen.';
      
      createState(pfad + 'Tauch_Pumpe_Schalter', {
          id: 'Tauch_Pumpe_Schalter',
          name: 'Tauch_Pumpe_Schalter',
          type: 'boolean',
          def: false
      });
      
      createState(pfad + 'Tauch_Pumpe_Zustand', {
          id: 'Tauch_Pumpe_Zustand',
          name: 'Tauch_Pumpe_Zustand',
          type: 'boolean',
          def: false
      });
      
      //########################################################################################################
      var request = require ('request');
      var url_on_Tauch_Hand = "http://192.168.xxx.xxx/automatik_set_funk.php?hauscode=00000&ausgang=4&zustand=1";
      var url_off_Tauch_Hand = "http://192.168.xxx.xxx/automatik_set_funk.php?hauscode=00000&ausgang=4&zustand=0";
      //########################################################################################################
      
      on(pfad + 'Tauch_Pumpe_Schalter' , function (obj_1) {
          if (obj_1.state.val) {
              request(url_on_Tauch_Hand);
              setState(pfad + "Tauch_Pumpe_Zustand", true);
              log("Tauch an");
          }
      
          if (!obj_1.state.val)  {
              request(url_off_Tauch_Hand);
              setState(pfad + 'Tauch_Pumpe_Zustand', false);
              log("Tauch aus");
          }
      });
      
      

      IO Broker wäre dann auch fertig!

      Was mir aufgefallen ist, das die Reichweite der Funksteckdosen zu wünschen übrig lässt und hier kommt der Empfänger ins Spiel. Den Empfänger der Funksteckdose ausgelötet und den oben genannten Empfänger angelötet und mit einer Antenne nach außen versehen.

      Reichweite geht nun aus dem Keller bis raus in das Carport Entfernung ca 50m ohne Fehlschaltungen.

      Dann habe ich mir gleich noch ein paar weitere umgebaut und bin zufrieden damit. Ein Nachteil wurde ja schon erwähnt, das man den Zustand nicht zurück gemeldet bekommt. Aber ein wenig hilft ja da der Zustandsschalter im IO Broker und natürlich wenn man 3 Sendebefehle hintereinander schickt, sollte es auch gehen.

      Grüße,

      Torsten

      1 Reply Last reply Reply Quote 0
      • 0
        0018 last edited by

        @Bluefox:

        Man kann sicherheitsweise 3 mal das Kommando senden :). `
        Müsste das ganze dann so aussehen?

        on('hm-rega.0.59626', function (obj) {
        
        current_state = getState("hm-rega.0.59626").val;
        
        if (current_state == "1")
            {
                exec('/opt/raspberry-remote/./send 11101 1 1');
                exec('/opt/raspberry-remote/./send 11101 1 1');
                exec('/opt/raspberry-remote/./send 11101 1 1');
            }
        else
            {
                exec('/opt/raspberry-remote/./send 11101 1 0');
                exec('/opt/raspberry-remote/./send 11101 1 0');
                exec('/opt/raspberry-remote/./send 11101 1 0');
            }
        
        });
        
        
        1 Reply Last reply Reply Quote 0
        • M
          Marc.Matic last edited by

          @0018:

          Müsste das ganze dann so aussehen? `

          Hab es so getestet, das klappt aber scheinbar nicht wirklich weil die Befehle zu schnell hintereinander kommen. Habe es daher so gemacht:

          on('hm-rega.0.59626', function (obj) {
          
          current_state = getState("hm-rega.0.59626").val;
          
          if (current_state == "1")
              {
                  exec('/opt/raspberry-remote/./send 11101 1 1');
                  setTimeout(myDelay1_1, 3000);
                  setTimeout(myDelay1_2, 6000);
              }
          else
              {
                  exec('/opt/raspberry-remote/./send 11101 1 0');
                  setTimeout(myDelay0_1, 3000);
                  setTimeout(myDelay0_2, 6000);
              }
          
          });
          
          function myDelay1_1() {
             exec('/opt/raspberry-remote/./send 11101 1 1');
          }
          
          function myDelay1_2() {
             exec('/opt/raspberry-remote/./send 11101 1 1');
          }
          
          function myDelay0_1() {
             exec('/opt/raspberry-remote/./send 11101 1 0');
          }
          
          function myDelay0_2() {
             exec('/opt/raspberry-remote/./send 11101 1 0');
          }
          
          
          1 Reply Last reply Reply Quote 0
          • T
            torstenh last edited by

            ….Sende- und Empfangsfehler können aber nicht mit einer Mehrfachsendung unterbunden werden. Da muß dann doch ein Hardwareupdate gemacht werden.

            Grüße,

            Torsten

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @Marc.Matic:

              Habe es daher so gemacht: `
              Das lässt sich vereinfachen:

              var timer1 = null;
              var timer2 = null;
              
              function send(val) {
                exec('/opt/raspberry-remote/./send 11101 1 ' + val);
              }
              
              on('hm-rega.0.59626', function (obj) {
                send(obj.state.val);
                if(timer1) clearTimeout(timer1);
                if(timer2) clearTimeout(timer2);
                timer1 = setTimeout(function() {send(obj.state.val);}, 2000);
                timer2 = setTimeout(function() {send(obj.state.val);}, 6000);
              });
              
              
              1 Reply Last reply Reply Quote 0
              • T
                torstenh last edited by

                Hallo zusammen,

                habe mich jetzt ein wenig in MQTT eingelesen und ein neues Projekt gestartet. Funksteckdosen über Raspberry Pi schalten bleibt aber die Kommunikation über IO Broker und MQTT zu realisieren.

                Hat den Charme das man den Pi über W-Lan platzieren kann wo man möchte und der komplette Datenaustausch über MQTT realisiert wird. Unter anderen gibt es die Funktion verschiedene 433Mhz Sende- Protokolle zu implementieren um auch andere Sachen wie z.B. 433Mhz Funkklingel oder Wetterstation abzufangen und im IO Broker als Event zu bekommen.

                Grüße,

                Torsten

                1 Reply Last reply Reply Quote 0
                • A
                  amnesia106 last edited by

                  Hallo forum Gemeinde,

                  Ich bin neu in der Materie iobroker und habe so meine Probleme mit den Steckdosen.

                  Ich bekomme es einfach nicht hin. Folgende Ausgangslage:

                  Insgesamt laufen 3 raspberry.

                  1. iobroker inkl. Vis

                  2. homematic

                  3. VPN und raspberry Remote für die 433mhz Dosen.

                  Zur Zeit schalte ich die Steckdosen per Programm in der CCU, sprich für jeden Zustand(Ein/ Aus) 3ein gesondertes Programm, bedeutetet dass ich auch pro steckdose zwei Buttons in der VIS anlegen muss,

                  Welche das Programm der CCU ausführen.

                  Ich habe so keine Zustand der Dose( Steckdosen liegen imoptimalen bereich, schalten immer beim ersten mal), diesen möchte ich aber darstellen.

                  Ich benötige da mal eure Hilfe. Wie löse ich das Problem?

                  Edit: ich habe es hinbekommen….:-)

                  Ich habe es etwas anders, mit leichtem Umweg über die CCU geschaltet.

                  1 Reply Last reply Reply Quote 0
                  • D
                    DerUwe last edited by

                    Ahoi!

                    Dann muss ich meinen Senf auch mal zu den Billigsteckdosen geben 🙂

                    Unten mein Script das auch gleich die Objekte in iobroker mit erzeugt.

                    Welches Objekt welchen Code versenden soll steht im Dictionary PwrplugConfig

                    ! /* System Baumarktsteckdosen Verbindung zwischen Baumarktsteckdose und iobroker Signal ! 09.01.2017: Initial Script: Script defines variables to control stupid powerplugs you need a script to send the code via cheap 433MHz transmitter, soldered on gpio pins on raspberry */ ! //Dictionary of all used power plugs const Topicfolder = 'Baumarktsteckdosen' var PwrplugConfig ={ 'SZ_4' :'11111 4', 'SZ_Licht_Links' :'11111 2', 'SZ_Licht_Rechts' :'11111 1', 'SZ_TV' :'11111 3', 'WG_Hi_Rechts' :'00101 4', 'WG_Licht_Links' :'00101 3', 'WG_Radio' :'00101 1', 'WG_Stehlampe' :'00101 2', 'WZ_4' :'01111 2', 'WZ_Licht_Rechts' :'01111 4', 'WZ_Standlicht' :'01111 3', 'WZ_TV' :'01111 1' }; ! var timer1 = null; var timer2 = null; ! //############################### One Time execution on scriptstart####################################### //create all variables if not exist for (var item in PwrplugConfig) { createState(Topicfolder+'.'+item,0, {read: true,write: true,type: 'boolean', name: 'Eine Steckdose',desc: ''}); } ! //############################### Event execution ####################################### //subscribe all tags in topicfolder var cacheSelectorState = $('^javascript.0.'+Topicfolder+'.*/r>); cacheSelectorState.on( function(obj) { var lastpkt = obj.id.lastIndexOf('.'); var substring=obj.id.substring(lastpkt+1); log('Steckdose geschaltet:'+substring+'['+PwrplugConfig[substring]+'] = '+ obj.state.val); send(PwrplugConfig[substring]+' '+ obj.state.val); if(timer1) clearTimeout(timer1); if(timer2) clearTimeout(timer2); timer1 = setTimeout(function() {send(PwrplugConfig[substring]+' '+ obj.state.val);}, 500); timer2 = setTimeout(function() {send(PwrplugConfig[substring]+' '+ obj.state.val);}, 1000); }); ! function send(val) { exec('/sbin/send ' + val); } !

                    1 Reply Last reply Reply Quote 0
                    • D
                      Dr.iller last edited by

                      @torstenh:

                      ";
                                                                      }
                                                              }
                                                              else
                                                              {
                                                              echo "Keine Ausgang gesetzt!" . "
                      ";
                                                              }
                                                      }
                                                      else
                                                      {
                                                      echo "Kein Hauscode gesetzt!" . "
                      ";
                                                      }
                              if(isset($_GET['hauscode']) && isset($_GET['ausgang']) && isset($_GET['zustand']))
                              {
                              exec('sudo /root/raspberry-remote/./send ' . $hauscode . ' ' . $ausgang . ' ' . $zustand);
                              echo '
                      ' .  $hauscode . ' ' . $ausgang . ' ' . 'auf Zustand ' . $zustand .' geschaltet!';
                              }
                              else
                              {
                              echo "Funksteckdose nicht geschaltet!";
                              }
                      ?>
                      

                      …und im HTTP Root als automatik_set_funk.php speichern.

                      Damit wäre der Pi fertig eingerichtet und kann als Sender arbeiten.

                      Wenn aus einem Browser seiner Wahl folgenden Link aufruft:

                      http://192.168.xxx.xxx/automatik_set_fu … &zustand=1

                      Natürlich mit der IP Adresse des RPI! Wird die jeweilige Steckdose geschaltet.

                      Entsprechend mit:

                      http://192.168.xxx.xxx/automatik_set_fu … &zustand=0

                      wieder aus geschaltet.

                      Wenn das funktioniert, ist der Pi fertig! `

                      Hallo zusammen,

                      ich finde die Idee sehr interessant die Steckdosen per URL zu steuern.

                      sudo ./send 11111 4 1 funktioniert super bei mir. Wenn ich das PHP Skript einbinde wird leider der EXEC Befehl nicht ausgeführt, bzw schaltet die Steckdose nicht.

                      Bei mir sieht er folgend aus: exec('sudo ~/raspberry-remote/./send ' . $hauscode . ' ' . $ausgang . ' ' . $zustand);

                      Hat jemand eine Idee was ich hier noch falsch mache?

                      Danke VG Alex

                      1 Reply Last reply Reply Quote 0
                      • D
                        Dr.iller last edited by

                        Hallo zusammen,

                        wie muss das Skript eingebunden werden in ioBroker? JavaScript Engine?

                        VG Alex

                        @DerUwe:

                        Ahoi!

                        Dann muss ich meinen Senf auch mal zu den Billigsteckdosen geben 🙂

                        Unten mein Script das auch gleich die Objekte in iobroker mit erzeugt.

                        Welches Objekt welchen Code versenden soll steht im Dictionary PwrplugConfig

                        ! /* System Baumarktsteckdosen Verbindung zwischen Baumarktsteckdose und iobroker Signal ! 09.01.2017: Initial Script: Script defines variables to control stupid powerplugs you need a script to send the code via cheap 433MHz transmitter, soldered on gpio pins on raspberry */ ! //Dictionary of all used power plugs const Topicfolder = 'Baumarktsteckdosen' var PwrplugConfig ={ 'SZ_4' :'11111 4', 'SZ_Licht_Links' :'11111 2', 'SZ_Licht_Rechts' :'11111 1', 'SZ_TV' :'11111 3', 'WG_Hi_Rechts' :'00101 4', 'WG_Licht_Links' :'00101 3', 'WG_Radio' :'00101 1', 'WG_Stehlampe' :'00101 2', 'WZ_4' :'01111 2', 'WZ_Licht_Rechts' :'01111 4', 'WZ_Standlicht' :'01111 3', 'WZ_TV' :'01111 1' }; ! var timer1 = null; var timer2 = null; ! //############################### One Time execution on scriptstart####################################### //create all variables if not exist for (var item in PwrplugConfig) { createState(Topicfolder+'.'+item,0, {read: true,write: true,type: 'boolean', name: 'Eine Steckdose',desc: ''}); } ! //############################### Event execution ####################################### //subscribe all tags in topicfolder var cacheSelectorState = $('^javascript.0.'+Topicfolder+'.*/quote>); cacheSelectorState.on( function(obj) { var lastpkt = obj.id.lastIndexOf('.'); var substring=obj.id.substring(lastpkt+1); log('Steckdose geschaltet:'+substring+'['+PwrplugConfig[substring]+'] = '+ obj.state.val); send(PwrplugConfig[substring]+' '+ obj.state.val); if(timer1) clearTimeout(timer1); if(timer2) clearTimeout(timer2); timer1 = setTimeout(function() {send(PwrplugConfig[substring]+' '+ obj.state.val);}, 500); timer2 = setTimeout(function() {send(PwrplugConfig[substring]+' '+ obj.state.val);}, 1000); }); ! function send(val) { exec('/sbin/send ' + val); } ! `

                        1 Reply Last reply Reply Quote 0
                        • D
                          DerUwe last edited by

                          Hi

                          Sorry für die späte Antwort, ich war busy.

                          Ja lege ein neues Javascript in iobroker an und paste den text vom script oben dort rein.

                          Ich nehme an der Pfad zum send Befehl muss auch entsprechend angepasst werden.

                          Dann kommt es noch darauf an unter welchen user der iobroker läuft, denn normalerweise darf nur root auf die GPIO pins zugreifen.

                          Wenn du den send befehl als pi aufrufst, sollte das auch mit iobroker gehen.

                          Ich habe meinen send befehl etwas aufgepimpt, weil Der normalerweise den Code nur einmal sendet:

                           else {
                                          switch (command) {
                                              case 1:
                                                  mySwitch.switchOn(systemCode, unitCode);
                                                  usleep(300);
                                                  mySwitch.switchOn(systemCode, unitCode);
                                                  usleep(300);
                                                  mySwitch.switchOn(systemCode, unitCode);
                                                  usleep(300);
                                                  break;
                                              case 0:
                                                  mySwitch.switchOff(systemCode, unitCode);
                                                  usleep(300);
                                                  mySwitch.switchOff(systemCode, unitCode);
                                                  usleep(300);
                                                  mySwitch.switchOff(systemCode, unitCode);
                                                  usleep(300);
                                                  break;
                                              case 2:
                                                  // 00001 2 on binary coded
                                                  mySwitch.send("010101010001000101010001");
                                                  break;
                                              case 3:
                                                  // 00001 2 on as TriState
                                                  mySwitch.sendTriState("FFFF0F0FFF0F");
                                                  break;
                                              default:
                                                  printf("command[%i] is unsupported\n", command);
                                                  printUsage();
                                                  if (!multiMode) {
                                                      return -1;
                          
                          

                          Das heisst mit dem Aufruf von send schickt der befejl das Kommando drei mal raus! Damit schalte ich bisher jede Steckdose gewissenhaft ein und aus

                          @Dr.iller:

                          Hallo zusammen,

                          wie muss das Skript eingebunden werden in ioBroker? JavaScript Engine?

                          VG Alex `

                          1 Reply Last reply Reply Quote 0
                          • D
                            Dr.iller last edited by

                            @DerUwe:

                            Hi

                            Sorry für die späte Antwort, ich war busy.

                            Ja lege ein neues Javascript in iobroker an und paste den text vom script oben dort rein.

                            Ich nehme an der Pfad zum send Befehl muss auch entsprechend angepasst werden. `

                            Danke für die Antwort. - Kein Problem.

                            Ich habe es auch als Script angelegt Allerdings erzeugt er mir keine Objekte in iobroker.

                            Verwendest du noch zusätzliche NPM Module? Oder hast du sonst etwas in den JavaScript Einstellungen noch eingestellt?

                            VG

                            1 Reply Last reply Reply Quote 0
                            • D
                              DerUwe last edited by

                              Guck mal wie das Script funktioniert:

                              //Dictionary of all used power plugs

                              const <u>Topicfolder</u> = 'Baumarktsteckdosen'

                              var <u>PwrplugConfig</u> ={

                              'SZ_4' :'11111 4',

                              'SZ_Licht_Links' :'11111 2',

                              'SZ_Licht_Rechts' :'11111 1',

                              'SZ_TV' :'11111 3',

                              'WG_Hi_Rechts' :'00101 4',

                              'WG_Licht_Links' :'00101 3',

                              'WG_Radio' :'00101 1',

                              'WG_Stehlampe' :'00101 2',

                              'WZ_4' :'01111 2',

                              'WZ_Licht_Rechts' :'01111 4',

                              'WZ_Standlicht' :'01111 3',

                              'WZ_TV' :'01111 1'

                              };

                              var timer1 = null;

                              var timer2 = null;

                              //############################### One Time execution on scriptstart#######################################

                              //create all variables if not exist

                              for (var <u>item</u> in <u>PwrplugConfig</u>) {

                              createState(Topicfolder+'.'+item,0, {read: true,write: true,type: 'boolean',

                              name: 'Eine Steckdose',desc: ''});

                              }

                              Die FETT markierten Variablen werden hier verwendet.

                              Die For Schleife geht also für jeden Eintrag in PwrplugConfig hin und weist der Variablen item den nächsten Wert zu und erstellt darauf die Variablen.

                              in der Funktion createItem baue ich den string zusammen, wie er denn dann heissen soll: Baumarktsteckdosen.SZ_4 usw.

                              Da das Script vom Adapter javascript ausgeführt wird, findest du das dann unter javascript.0. Baumarktsteckdosen.SZ_4

                              Das sollte so funktionieren… Findest du Fehlermeldungen im log?

                              ` > Danke für die Antwort. - Kein Problem.

                              Ich habe es auch als Script angelegt Allerdings erzeugt er mir keine Objekte in iobroker.

                              Verwendest du noch zusätzliche NPM Module? Oder hast du sonst etwas in den JavaScript Einstellungen noch eingestellt?

                              VG `

                              1 Reply Last reply Reply Quote 0
                              • D
                                Denwo last edited by

                                Einen wunderschönen guten Abend und Hallo gesagt.

                                Ich bin neue hier und habe die Tage etwas über die Funksteckdosen 433 MHz gesucht und muss sagen, dass ich sehr wenig gefunden habe.

                                Für andere die noch am suchen sind habe ich mal eine Video gemacht und zeige dort wie ich es bis jetzt am einfachsten für mich gelöst habe.

                                Meine Konfiguration:

                                • RaspberryPI 2

                                • 433 MHz Sender & Empfänger

                                • wiringPi + rcswitch-pi Installation auf dem PI

                                • ioBroker + Adapter

                                https://www.youtube.com/watch?v=RTeHtsIAr5k

                                1 Reply Last reply Reply Quote 0
                                • D
                                  Dr.iller last edited by

                                  @DerUwe:

                                  Das sollte so funktionieren… Findest du Fehlermeldungen im log? `

                                  ja so habe ich das Skript auch verstanden.

                                  Im LOG erscheint nur folgendes:

                                  javascript.0 2017-01-23 20:34:45.566 info received all objects

                                  javascript.0 2017-01-23 20:34:45.260 info received all states

                                  javascript.0 2017-01-23 20:34:44.646 info requesting all objects

                                  javascript.0 2017-01-23 20:34:44.642 info requesting all states

                                  Aber ich habe eine Denkfehler. Derzeit läuft iobroker auf meiner Synology NAS und auf dem raspberry rscwitch. Somit kennen die beiden sich nicht.

                                  Hat jemand so etwas schonmal gelöst?

                                  Anbei 2 Screenshots wie ich dies eingebunden habe.
                                  1862_2017-01-23_20_35_12-iobroker.admin.jpg
                                  1862_2017-01-23_20_35_44-iobroker.admin.jpg

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    Denwo last edited by

                                    Von dem Script kann ich leider durch nicht ausreichende Kenntnisse nichts sagen.

                                    Was das mit deinem NAS und PI betrifft…

                                    • SSH Key anlegen, damit du vom NAS kein PW eingeben musst um auf dem PI etwas auszuführen

                                    • den Befehl via SSH an den PI senden.

                                    oder.. das PHP Script von der ersten Seite verwenden und auf dem PI anpassen, mit ioBroker dann das PHP Script aufrufen

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      Dr.iller last edited by

                                      @Denwo:

                                      Von dem Script kann ich leider durch nicht ausreichende Kenntnisse nichts sagen.

                                      das PHP Script von der ersten Seite verwenden und auf dem PI anpassen, mit ioBroker dann das PHP Script aufrufen `

                                      Genau so versuche ich es nochmals.

                                      Allerdings wird mein exec bisher nicht ausgeführt: exec('sudo ~/raspberry-remote/./send ' . $hauscode . ' ' . $ausgang . ' ' . $zustand);

                                      Hier muss ich mal noch die Return Werte auswerten. GGf. mit shell_exec arbeiten. PHP ist da doch ein wenig eigen 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        Denwo last edited by

                                        der normale Befehl geht mit sudo?

                                        ansonsten zum testen einfach mal..

                                        sudo su - root
                                        

                                        dann

                                        php /dein/pfad/zur/php/datei.php hauscode ausgang zustand
                                        

                                        kann an die Berechtigungen liegen, wem gehört die php Datei und welche rechte sind gesetzt.

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          Dr.iller last edited by

                                          @Denwo:

                                          der normale Befehl geht mit sudo?

                                          kann an die Berechtigungen liegen, wem gehört die php Datei und welche rechte sind gesetzt. `

                                          Ja der normale Befehl mit Sudo klappt: sudo ~/raspberry/./send 11111 3 1

                                          Der php Datei habe ich nun volle Rechte gegeben chmod 777

                                          shell_exec leider auch noch ohne Erfolg.

                                          Ist hier ein PHP Spezi anwesend ? 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            Scubydoo last edited by

                                            Hallo Dr.iller,

                                            ich hatte das auch. Nun habe ich die Lösung gefunden:

                                            zuerst habe ich den Pfad in der php Datei angepasst:

                                            Zeile 29: exec('sudo /home/pi/raspberry-remote/./send ' . $hauscode . ' ' . $ausgang . ' ' . $zustand);

                                            Anpassen der Rechte

                                            sudo visudo
                                            
                                            

                                            Folgende Zeilen hinzufügen:

                                            # Funksteckdosen
                                            www-data ALL=NOPASSWD: /home/pi/rcswitch-pi/send
                                            
                                            

                                            Danach lief es bei mir.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            584
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            21
                                            56
                                            38750
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo